diff options
Diffstat (limited to 'lib/ncurses')
-rw-r--r-- | lib/ncurses/Makefile | 6 | ||||
-rw-r--r-- | lib/ncurses/Makefile.inc | 5 | ||||
-rw-r--r-- | lib/ncurses/config.mk | 54 | ||||
-rw-r--r-- | lib/ncurses/form/Makefile | 166 | ||||
-rw-r--r-- | lib/ncurses/formw/Makefile | 5 | ||||
-rw-r--r-- | lib/ncurses/menu/Makefile | 139 | ||||
-rw-r--r-- | lib/ncurses/menuw/Makefile | 5 | ||||
-rw-r--r-- | lib/ncurses/ncurses/Makefile | 987 | ||||
-rw-r--r-- | lib/ncurses/ncurses/ncurses_cfg.h | 205 | ||||
-rw-r--r-- | lib/ncurses/ncurses/pathnames.h | 34 | ||||
-rw-r--r-- | lib/ncurses/ncurses/termcap.c | 262 | ||||
-rw-r--r-- | lib/ncurses/ncursesw/Makefile | 7 | ||||
-rw-r--r-- | lib/ncurses/panel/Makefile | 67 | ||||
-rw-r--r-- | lib/ncurses/panelw/Makefile | 5 |
14 files changed, 1947 insertions, 0 deletions
diff --git a/lib/ncurses/Makefile b/lib/ncurses/Makefile new file mode 100644 index 0000000..05cd7a2 --- /dev/null +++ b/lib/ncurses/Makefile @@ -0,0 +1,6 @@ +# $FreeBSD$ + +SUBDIR= ncurses form menu panel \ + ncursesw formw menuw panelw + +.include <bsd.subdir.mk> diff --git a/lib/ncurses/Makefile.inc b/lib/ncurses/Makefile.inc new file mode 100644 index 0000000..89c6348 --- /dev/null +++ b/lib/ncurses/Makefile.inc @@ -0,0 +1,5 @@ +# $FreeBSD$ + +# This is to include src/lib/Makefile.inc + +.include "../Makefile.inc" diff --git a/lib/ncurses/config.mk b/lib/ncurses/config.mk new file mode 100644 index 0000000..d01e17a --- /dev/null +++ b/lib/ncurses/config.mk @@ -0,0 +1,54 @@ +# $FreeBSD$ + +# This Makefile is shared by libncurses, libform, libmenu, libpanel. + +NCURSES_DIR= ${.CURDIR}/../../../contrib/ncurses + +.if defined(ENABLE_WIDEC) +LIB_SUFFIX= w +CFLAGS+= -D_XOPEN_SOURCE_EXTENDED -DENABLE_WIDEC +NCURSES_CFG_H= ${.CURDIR}/../ncurses/ncurses_cfg.h +.else +LIB_SUFFIX= +NCURSES_CFG_H= ${.CURDIR}/ncurses_cfg.h +.endif + +CFLAGS+= -I. +.if exists(${.OBJDIR}/../ncurses${LIB_SUFFIX}) +CFLAGS+= -I${.OBJDIR}/../ncurses${LIB_SUFFIX} +.endif +CFLAGS+= -I${.CURDIR}/../ncurses${LIB_SUFFIX} + +# for ${NCURSES_CFG_H} +CFLAGS+= -I${.CURDIR}/../ncurses + +CFLAGS+= -I${NCURSES_DIR}/include +CFLAGS+= -I${NCURSES_DIR}/ncurses + +CFLAGS+= -Wall + +CFLAGS+= -DNDEBUG + +CFLAGS+= -DHAVE_CONFIG_H + +# everyone needs this +.PATH: ${NCURSES_DIR}/include + +# tools and directories +AWK?= awk +TERMINFODIR?= ${SHAREDIR}/misc + +# Generate headers +ncurses_def.h: MKncurses_def.sh ncurses_defs + AWK=${AWK} sh ${NCURSES_DIR}/include/MKncurses_def.sh \ + ${NCURSES_DIR}/include/ncurses_defs > ncurses_def.h + +# Manual pages filter +MANFILTER= sed -e 's%@TERMINFO@%${TERMINFODIR}/terminfo%g' \ + -e 's%@DATADIR@%/usr/share%g' \ + -e 's%@NCURSES_OSPEED@%${NCURSES_OSPEED}%g' \ + -e 's%@NCURSES_MAJOR@%${NCURSES_MAJOR}%g' \ + -e 's%@NCURSES_MINOR@%${NCURSES_MINOR}%g' \ + -e 's%@NCURSES_PATCH@%${NCURSES_PATCH}%g' \ + -e 's%@TIC@%tic%g' \ + -e 's%@INFOCMP@%infocmp%g' diff --git a/lib/ncurses/form/Makefile b/lib/ncurses/form/Makefile new file mode 100644 index 0000000..fe89d45 --- /dev/null +++ b/lib/ncurses/form/Makefile @@ -0,0 +1,166 @@ +# $FreeBSD$ + +.include "${.CURDIR}/../config.mk" + +SRCDIR= ${NCURSES_DIR}/form + +LIB= form${LIB_SUFFIX} + +.PATH: ${SRCDIR} +SRCS= \ + ncurses_def.h \ + fld_arg.c \ + fld_attr.c \ + fld_current.c \ + fld_def.c \ + fld_dup.c \ + fld_ftchoice.c \ + fld_ftlink.c \ + fld_info.c \ + fld_just.c \ + fld_link.c \ + fld_max.c \ + fld_move.c \ + fld_newftyp.c \ + fld_opts.c \ + fld_pad.c \ + fld_page.c \ + fld_stat.c \ + fld_type.c \ + fld_user.c \ + frm_cursor.c \ + frm_data.c \ + frm_def.c \ + frm_driver.c \ + frm_hook.c \ + frm_opts.c \ + frm_page.c \ + frm_post.c \ + frm_req_name.c \ + frm_scale.c \ + frm_sub.c \ + frm_user.c \ + frm_win.c \ + fty_alnum.c \ + fty_alpha.c \ + fty_enum.c \ + fty_int.c \ + fty_ipv4.c \ + fty_num.c \ + fty_regex.c + +CLEANFILES= ncurses_def.h + +CFLAGS+= -I${SRCDIR} +CFLAGS+= -I${NCURSES_DIR}/menu + +DPADD= ${LIBNCURSES${LIB_SUFFIX:U}} +LDADD= -lncurses${LIB_SUFFIX} + +.if defined(ENABLE_WIDEC) +INCS= form.h +.endif + +.PATH: ${NCURSES_DIR}/man +MAN= \ + form.3 \ + form_cursor.3 \ + form_data.3 \ + form_driver.3 \ + form_field.3 \ + form_field_attributes.3 \ + form_field_buffer.3 \ + form_field_info.3 \ + form_field_just.3 \ + form_field_new.3 \ + form_field_opts.3 \ + form_field_userptr.3 \ + form_field_validation.3 \ + form_fieldtype.3 \ + form_hook.3 \ + form_new.3 \ + form_new_page.3 \ + form_opts.3 \ + form_page.3 \ + form_post.3 \ + form_requestname.3 \ + form_userptr.3 \ + form_win.3 + +CLEANFILES+= ${MAN:M*.3} + +MLINKS= form_cursor.3 pos_form_cursor.3 \ + form_data.3 data_ahead.3 \ + form_data.3 data_behind.3 \ + form_field.3 field_count.3 \ + form_field.3 form_fields.3 \ + form_field.3 move_field.3 \ + form_field.3 set_form_fields.3 \ + form_field_attributes.3 field_back.3 \ + form_field_attributes.3 field_fore.3 \ + form_field_attributes.3 field_pad.3 \ + form_field_attributes.3 set_field_back.3 \ + form_field_attributes.3 set_field_fore.3 \ + form_field_attributes.3 set_field_pad.3 \ + form_field_buffer.3 field_buffer.3 \ + form_field_buffer.3 field_status.3 \ + form_field_buffer.3 set_field_buffer.3 \ + form_field_buffer.3 set_field_status.3 \ + form_field_buffer.3 set_max_field.3 \ + form_field_info.3 dynamic_fieldinfo.3 \ + form_field_info.3 field_info.3 \ + form_field_just.3 field_just.3 \ + form_field_just.3 set_field_just.3 \ + form_field_new.3 dup_field.3 \ + form_field_new.3 free_field.3 \ + form_field_new.3 link_field.3 \ + form_field_new.3 new_field.3 \ + form_field_opts.3 field_opts.3 \ + form_field_opts.3 field_opts_off.3 \ + form_field_opts.3 field_opts_on.3 \ + form_field_opts.3 set_field_opts.3 \ + form_field_userptr.3 field_userptr.3 \ + form_field_userptr.3 set_field_userptr.3 \ + form_field_validation.3 field_arg.3 \ + form_field_validation.3 field_type.3 \ + form_field_validation.3 set_field_type.3 \ + form_fieldtype.3 free_fieldtype.3 \ + form_fieldtype.3 link_fieldtype.3 \ + form_fieldtype.3 new_fieldtype.3 \ + form_fieldtype.3 set_fieldtype_arg.3 \ + form_fieldtype.3 set_fieldtype_choice.3 \ + form_hook.3 field_init.3 \ + form_hook.3 field_term.3 \ + form_hook.3 form_init.3 \ + form_hook.3 form_term.3 \ + form_hook.3 set_field_init.3 \ + form_hook.3 set_field_term.3 \ + form_hook.3 set_form_init.3 \ + form_hook.3 set_form_term.3 \ + form_new.3 free_form.3 \ + form_new.3 new_form.3 \ + form_new_page.3 new_page.3 \ + form_new_page.3 set_new_page.3 \ + form_opts.3 form_opts_off.3 \ + form_opts.3 form_opts_on.3 \ + form_opts.3 set_form_opts.3 \ + form_page.3 current_field.3 \ + form_page.3 field_index.3 \ + form_page.3 set_current_field.3 \ + form_page.3 set_form_page.3 \ + form_post.3 post_form.3 \ + form_post.3 unpost_form.3 \ + form_requestname.3 form_request_by_name.3 \ + form_requestname.3 form_request_name.3 \ + form_userptr.3 set_form_userptr.3 \ + form_win.3 form_sub.3 \ + form_win.3 scale_form.3 \ + form_win.3 set_form_sub.3 \ + form_win.3 set_form_win.3 + +.include <bsd.lib.mk> + +# Keep the .SUFFIXES line after the include of bsd.lib.mk +.SUFFIXES: .3 .3x +.3x.3: + cat ${.IMPSRC} > ${.TARGET} diff --git a/lib/ncurses/formw/Makefile b/lib/ncurses/formw/Makefile new file mode 100644 index 0000000..5488503 --- /dev/null +++ b/lib/ncurses/formw/Makefile @@ -0,0 +1,5 @@ +# $FreeBSD$ + +ENABLE_WIDEC= + +.include "${.CURDIR}/../form/Makefile" diff --git a/lib/ncurses/menu/Makefile b/lib/ncurses/menu/Makefile new file mode 100644 index 0000000..a853d8c --- /dev/null +++ b/lib/ncurses/menu/Makefile @@ -0,0 +1,139 @@ +# $FreeBSD$ + +.include "${.CURDIR}/../config.mk" + +SRCDIR= ${NCURSES_DIR}/menu + +LIB= menu${LIB_SUFFIX} + +.PATH: ${SRCDIR} +SRCS= \ + ncurses_def.h \ + m_attribs.c \ + m_cursor.c \ + m_driver.c \ + m_format.c \ + m_global.c \ + m_hook.c \ + m_item_cur.c \ + m_item_nam.c \ + m_item_new.c \ + m_item_opt.c \ + m_item_top.c \ + m_item_use.c \ + m_item_val.c \ + m_item_vis.c \ + m_items.c \ + m_new.c \ + m_opts.c \ + m_pad.c \ + m_pattern.c \ + m_post.c \ + m_req_name.c \ + m_scale.c \ + m_spacing.c \ + m_sub.c \ + m_userptr.c \ + m_win.c + +CLEANFILES= ncurses_def.h + +CFLAGS+= -I${SRCDIR} + +DPADD= ${LIBNCURSES${LIB_SUFFIX:U}} +LDADD= -lncurses${LIB_SUFFIX} + +.if defined(ENABLE_WIDEC) +INCS= menu.h eti.h +.endif + +.PATH: ${NCURSES_DIR}/man +MAN= \ + menu.3 \ + menu_attributes.3 \ + menu_cursor.3 \ + menu_driver.3 \ + menu_format.3 \ + menu_hook.3 \ + menu_items.3 \ + menu_mark.3 \ + menu_new.3 \ + menu_opts.3 \ + menu_pattern.3 \ + menu_post.3 \ + menu_requestname.3 \ + menu_spacing.3 \ + menu_userptr.3 \ + menu_win.3 \ + mitem_current.3 \ + mitem_name.3 \ + mitem_new.3 \ + mitem_opts.3 \ + mitem_userptr.3 \ + mitem_value.3 \ + mitem_visible.3 + +CLEANFILES+= ${MAN:M*.3} + +MLINKS= menu_attributes.3 menu_back.3 \ + menu_attributes.3 menu_fore.3 \ + menu_attributes.3 menu_grey.3 \ + menu_attributes.3 menu_pad.3 \ + menu_attributes.3 set_menu_back.3 \ + menu_attributes.3 set_menu_fore.3 \ + menu_attributes.3 set_menu_grey.3 \ + menu_attributes.3 set_menu_pad.3 \ + menu_cursor.3 pos_menu_cursor.3 \ + menu_format.3 set_menu_format.3 \ + menu_hook.3 item_init.3 \ + menu_hook.3 item_term.3 \ + menu_hook.3 menu_init.3 \ + menu_hook.3 menu_term.3 \ + menu_hook.3 set_item_init.3 \ + menu_hook.3 set_item_term.3 \ + menu_hook.3 set_menu_init.3 \ + menu_hook.3 set_menu_term.3 \ + menu_items.3 item_count.3 \ + menu_items.3 set_menu_items.3 \ + menu_mark.3 set_menu_mark.3 \ + menu_new.3 free_menu.3 \ + menu_new.3 new_menu.3 \ + menu_opts.3 menu_opts_off.3 \ + menu_opts.3 menu_opts_on.3 \ + menu_opts.3 set_menu_opts.3 \ + menu_pattern.3 set_menu_pattern.3 \ + menu_post.3 post_menu.3 \ + menu_post.3 unpost_menu.3 \ + menu_requestname.3 menu_request_by_name.3 \ + menu_requestname.3 menu_request_name.3 \ + menu_spacing.3 set_menu_spacing.3 \ + menu_userptr.3 set_menu_userptr.3 \ + menu_win.3 menu_sub.3 \ + menu_win.3 scale_menu.3 \ + menu_win.3 set_menu_sub.3 \ + menu_win.3 set_menu_win.3 \ + mitem_current.3 current_item.3 \ + mitem_current.3 item_index.3 \ + mitem_current.3 set_current_item.3 \ + mitem_current.3 set_top_row.3 \ + mitem_current.3 top_row.3 \ + mitem_name.3 item_description.3 \ + mitem_name.3 item_name.3 \ + mitem_new.3 free_item.3 \ + mitem_new.3 new_item.3 \ + mitem_opts.3 item_opts.3 \ + mitem_opts.3 item_opts_off.3 \ + mitem_opts.3 item_opts_on.3 \ + mitem_opts.3 set_item_opts.3 \ + mitem_userptr.3 item_userptr.3 \ + mitem_userptr.3 set_item_userptr.3 \ + mitem_value.3 item_value.3 \ + mitem_value.3 set_item_value.3 \ + mitem_visible.3 item_visible.3 + +.include <bsd.lib.mk> + +# Keep the .SUFFIXES line after the include of bsd.lib.mk +.SUFFIXES: .3 .3x +.3x.3: + cat ${.IMPSRC} > ${.TARGET} diff --git a/lib/ncurses/menuw/Makefile b/lib/ncurses/menuw/Makefile new file mode 100644 index 0000000..d5a100f --- /dev/null +++ b/lib/ncurses/menuw/Makefile @@ -0,0 +1,5 @@ +# $FreeBSD$ + +ENABLE_WIDEC= + +.include "${.CURDIR}/../menu/Makefile" diff --git a/lib/ncurses/ncurses/Makefile b/lib/ncurses/ncurses/Makefile new file mode 100644 index 0000000..59f7c35 --- /dev/null +++ b/lib/ncurses/ncurses/Makefile @@ -0,0 +1,987 @@ +# $FreeBSD$ + +SHLIBDIR?= /lib + +.include <bsd.own.mk> + +.include "${.CURDIR}/../config.mk" + +LIB= ncurses${LIB_SUFFIX} +SHLIB_MAJOR= 7 + +NO_LINT= + +NCURSES_MAJOR!= egrep 'NCURSES_MAJOR[ ]*=' ${NCURSES_DIR}/dist.mk | sed -e 's%^[^0-9]*%%' +NCURSES_MINOR!= egrep 'NCURSES_MINOR[ ]*=' ${NCURSES_DIR}/dist.mk | sed -e 's%^[^0-9]*%%' +NCURSES_PATCH!= egrep 'NCURSES_PATCH[ ]*=' ${NCURSES_DIR}/dist.mk | sed -e 's%^[^0-9]*%%' + +# From autoconf (!) +.if defined(ENABLE_WIDEC) +NCURSES_CH_T= cchar_t +NCURSES_OK_WCHAR_T= 1 +NEED_WCHAR_H= 1 +.else +NCURSES_CH_T= chtype +NCURSES_OK_WCHAR_T= +NEED_WCHAR_H= 0 +.endif +NCURSES_CONST= const +NCURSES_EXT_COLORS= 0 +NCURSES_EXT_FUNCS= 1 +NCURSES_INLINE= inline +NCURSES_LIBUTF8= 0 +NCURSES_MBSTATE_T= 0 +NCURSES_MOUSE_VERSION= 1 +NCURSES_OPAQUE= 0 +NCURSES_OSPEED= short +NCURSES_SBOOL= char +NCURSES_SIZE_T= short +NCURSES_TPARM_VARARGS= 1 +NCURSES_WCHAR_T= 0 +NCURSES_WINT_T= 0 +NCURSES_XNAMES= 1 +BROKEN_LINKER= 0 +BUILTIN_BOOL= 1 +ENABLE_LP64= 0 +ENABLE_OPAQUE= NCURSES_OPAQUE +ENABLE_REENTRANT= 0 +HAVE_TCGETATTR= 1 +HAVE_TERMIOS_H= 1 +HAVE_TERMIO_H= 0 +HAVE_VSSCANF= 1 +HEADER_STDBOOL= 1 +# XXX amd64, ia64 1L and int +ONEUL= 1UL +TYPEOF_CHTYPE= long +TYPEOF_MMASK_T= long +TYPE_OF_BOOL= unsigned char +USE_BIG_STRINGS= 1 +USE_CXX_BOOL= defined(__cplusplus) + +GENSRCS= \ + codes.c \ + expanded.c \ + fallback.c \ + lib_gen.c \ + lib_keyname.c \ + names.c \ + unctrl.c + +GENHDRS= \ + curses.h \ + hashsize.h \ + init_keytry.h \ + ncurses_def.h \ + nomacros.h \ + parametrized.h \ + term.h \ + termcap.h \ + unctrl.h + +SRCS= ${GENHDRS} ${GENSRCS} + +.PATH: ${NCURSES_DIR}/ncurses/base +SRCS+= \ + define_key.c \ + key_defined.c \ + keybound.c \ + keyok.c \ + legacy_coding.c \ + lib_addch.c \ + lib_addstr.c \ + lib_beep.c \ + lib_bkgd.c \ + lib_box.c \ + lib_chgat.c \ + lib_clear.c \ + lib_clearok.c \ + lib_clrbot.c \ + lib_clreol.c \ + lib_color.c \ + lib_colorset.c \ + lib_delch.c \ + lib_delwin.c \ + lib_dft_fgbg.c \ + lib_echo.c \ + lib_endwin.c \ + lib_erase.c \ + lib_flash.c \ + lib_freeall.c \ + lib_getch.c \ + lib_getstr.c \ + lib_hline.c \ + lib_immedok.c \ + lib_inchstr.c \ + lib_initscr.c \ + lib_insch.c \ + lib_insdel.c \ + lib_insnstr.c \ + lib_instr.c \ + lib_isendwin.c \ + lib_leaveok.c \ + lib_mouse.c \ + lib_move.c \ + lib_mvwin.c \ + lib_newterm.c \ + lib_newwin.c \ + lib_nl.c \ + lib_overlay.c \ + lib_pad.c \ + lib_printw.c \ + lib_redrawln.c \ + lib_refresh.c \ + lib_restart.c \ + lib_scanw.c \ + lib_screen.c \ + lib_scroll.c \ + lib_scrollok.c \ + lib_scrreg.c \ + lib_set_term.c \ + lib_slk.c \ + lib_slkatr_set.c \ + lib_slkatrof.c \ + lib_slkatron.c \ + lib_slkatrset.c \ + lib_slkattr.c \ + lib_slkclear.c \ + lib_slkcolor.c \ + lib_slkinit.c \ + lib_slklab.c \ + lib_slkrefr.c \ + lib_slkset.c \ + lib_slktouch.c \ + lib_touch.c \ + lib_ungetch.c \ + lib_vline.c \ + lib_wattroff.c \ + lib_wattron.c \ + lib_winch.c \ + lib_window.c \ + memmove.c \ + nc_panel.c \ + resizeterm.c \ + safe_sprintf.c \ + tries.c \ + version.c \ + vsscanf.c \ + wresize.c + +.PATH: ${NCURSES_DIR}/ncurses/tinfo +SRCS+= \ + access.c \ + add_tries.c \ + alloc_entry.c \ + alloc_ttype.c \ + captoinfo.c \ + comp_captab.c \ + comp_error.c \ + comp_expand.c \ + comp_hash.c \ + comp_parse.c \ + comp_scan.c \ + db_iterator.c \ + doalloc.c \ + entries.c \ + free_ttype.c \ + getenv_num.c \ + hashed_db.c \ + home_terminfo.c \ + init_keytry.c \ + lib_acs.c \ + lib_baudrate.c \ + lib_cur_term.c \ + lib_data.c \ + lib_has_cap.c \ + lib_kernel.c \ + lib_longname.c \ + lib_napms.c \ + lib_options.c \ + lib_print.c \ + lib_raw.c \ + lib_setup.c \ + lib_termcap.c \ + lib_termname.c \ + lib_tgoto.c \ + lib_ti.c \ + lib_tparm.c \ + lib_tputs.c \ + lib_ttyflags.c \ + name_match.c \ + parse_entry.c \ + read_entry.c \ + setbuf.c \ + strings.c \ + trim_sgr0.c \ + write_entry.c + +.PATH: ${NCURSES_DIR}/ncurses/tty +SRCS+= \ + hardscroll.c \ + hashmap.c \ + lib_mvcur.c \ + lib_tstp.c \ + lib_twait.c \ + lib_vidattr.c \ + tty_update.c + +.if defined(ENABLE_WIDEC) +.PATH: ${NCURSES_DIR}/ncurses/widechar +SRCS+= \ + charable.c \ + lib_add_wch.c \ + lib_box_set.c \ + lib_cchar.c \ + lib_erasewchar.c \ + lib_get_wch.c \ + lib_get_wstr.c \ + lib_hline_set.c \ + lib_in_wch.c \ + lib_in_wchnstr.c \ + lib_ins_wch.c \ + lib_inwstr.c \ + lib_key_name.c \ + lib_pecho_wchar.c \ + lib_slk_wset.c \ + lib_unget_wch.c \ + lib_vid_attr.c \ + lib_vline_set.c \ + lib_wacs.c \ + lib_wunctrl.c +.endif + +.PATH: ${NCURSES_DIR}/ncurses/trace +SRCS+= \ + lib_trace.c \ + visbuf.c + +# Currently unused, for debugging libncurses itself. +DBGSRCS= \ + lib_traceatr.c \ + lib_tracebits.c \ + lib_tracechr.c \ + lib_tracedmp.c \ + lib_tracemse.c \ + trace_buf.c \ + trace_tries.c \ + trace_xnames.c \ + varargs.c + +# From our old libtermcap. +# Used instead of the hideous read_termcap.c abomination. +SRCS+= termcap.c + +CLEANFILES= ${GENSRCS} ${GENHDRS} keys.list make_hash term.h.new \ + make_keys MKterm.h.awk comp_captab.c curses.head + +CFLAGS+= -DFREEBSD_NATIVE -DTERMIOS + +# Installed +HEADERS= curses.h term.h termcap.h unctrl.h +SRCHDRS= ncurses_dll.h + +.if defined(ENABLE_WIDEC) +INCS= ${HEADERS} ${SRCHDRS} +INCSLINKS= curses.h ${INCLUDEDIR}/ncurses.h +.endif + +.if ${MK_INSTALLLIB} != "no" +SYMLINKS+= libncurses${LIB_SUFFIX}.a ${LIBDIR}/libcurses${LIB_SUFFIX}.a +SYMLINKS+= libncurses${LIB_SUFFIX}.a ${LIBDIR}/libtermcap${LIB_SUFFIX}.a +SYMLINKS+= libncurses${LIB_SUFFIX}.a ${LIBDIR}/libtermlib${LIB_SUFFIX}.a +SYMLINKS+= libncurses${LIB_SUFFIX}.a ${LIBDIR}/libtinfo${LIB_SUFFIX}.a +.endif +.if !defined(NO_PIC) +# no need for major at all, it's an ld-time redirection only +SYMLINKS+= libncurses${LIB_SUFFIX}.so ${LIBDIR}/libcurses${LIB_SUFFIX}.so +SYMLINKS+= libncurses${LIB_SUFFIX}.so ${LIBDIR}/libtermcap${LIB_SUFFIX}.so +SYMLINKS+= libncurses${LIB_SUFFIX}.so ${LIBDIR}/libtermlib${LIB_SUFFIX}.so +SYMLINKS+= libncurses${LIB_SUFFIX}.so ${LIBDIR}/libtinfo${LIB_SUFFIX}.so +.endif +.if ${MK_PROFILE} != "no" +SYMLINKS+= libncurses${LIB_SUFFIX}_p.a ${LIBDIR}/libcurses${LIB_SUFFIX}_p.a +SYMLINKS+= libncurses${LIB_SUFFIX}_p.a ${LIBDIR}/libtermcap${LIB_SUFFIX}_p.a +SYMLINKS+= libncurses${LIB_SUFFIX}_p.a ${LIBDIR}/libtermlib${LIB_SUFFIX}_p.a +SYMLINKS+= libncurses${LIB_SUFFIX}_p.a ${LIBDIR}/libtinfo${LIB_SUFFIX}_p.a +.endif + +DOCSDIR= ${SHAREDIR}/doc/ncurses +DOCS= ncurses-intro.html hackguide.html + +.if ${MK_HTML} != "no" +.PATH: ${NCURSES_DIR}/doc/html +FILESGROUPS= DOCS +.endif + +# Generated source +.ORDER: names.c codes.c + +names.c: MKnames.awk + ${AWK} -f ${NCURSES_DIR}/ncurses/tinfo/MKnames.awk bigstrings=${USE_BIG_STRINGS} ${NCURSES_DIR}/include/Caps > names.c + +codes.c: MKcodes.awk + ${AWK} -f ${NCURSES_DIR}/ncurses/tinfo/MKcodes.awk bigstrings=${USE_BIG_STRINGS} ${NCURSES_DIR}/include/Caps > codes.c + +lib_gen.c: MKlib_gen.sh curses.h + LC_ALL=C sh ${NCURSES_DIR}/ncurses/base/MKlib_gen.sh "${CC} -E ${CFLAGS}" \ + "${AWK}" generated < curses.h >$@ + +lib_keyname.c: keys.list MKkeyname.awk + ${AWK} -f ${NCURSES_DIR}/ncurses/base/MKkeyname.awk bigstrings=${USE_BIG_STRINGS} keys.list > lib_keyname.c + +unctrl.c: MKunctrl.awk + echo | ${AWK} -f ${NCURSES_DIR}/ncurses/base/MKunctrl.awk bigstrings=${USE_BIG_STRINGS} > unctrl.c + +comp_captab.c: MKcaptab.sh MKcaptab.awk Caps make_hash + sh ${NCURSES_DIR}/ncurses/tinfo/MKcaptab.sh "${AWK}" \ + ${USE_BIG_STRINGS} ${NCURSES_DIR}/ncurses/tinfo/MKcaptab.awk \ + ${NCURSES_DIR}/include/Caps > comp_captab.c + +expanded.c: MKexpanded.sh + sh ${NCURSES_DIR}/ncurses/tty/MKexpanded.sh "${CC} -E" ${CFLAGS} >expanded.c + +fallback.c: MKfallback.sh + sh ${NCURSES_DIR}/ncurses/tinfo/MKfallback.sh > fallback.c + +# Generated headers +nomacros.h: MKlib_gen.sh curses.h + LC_ALL=C sh ${NCURSES_DIR}/ncurses/base/MKlib_gen.sh "${CC} -E ${CFLAGS}" \ + "${AWK}" generated < curses.h | fgrep undef > $@ + +init_keytry.h: keys.list make_keys + ./make_keys keys.list > init_keytry.h + +hashsize.h: MKhashsize.sh Caps + sh ${NCURSES_DIR}/include/MKhashsize.sh ${NCURSES_DIR}/include/Caps > $@ + +parametrized.h: MKparametrized.sh Caps + AWK=${AWK} sh ${NCURSES_DIR}/include/MKparametrized.sh \ + ${NCURSES_DIR}/include/Caps > $@ + +term.h: MKterm.h.awk edit_cfg.sh Caps + ${AWK} -f MKterm.h.awk ${NCURSES_DIR}/include/Caps > $@.new + sh ${NCURSES_DIR}/include/edit_cfg.sh ${NCURSES_CFG_H} $@.new + mv -f $@.new $@ + +curses.h: curses.head MKkey_defs.sh Caps + cat curses.head > $@.new + AWK=${AWK} _POSIX2_VERSION=199209 sh ${NCURSES_DIR}/include/MKkey_defs.sh \ + ${NCURSES_DIR}/include/Caps >> $@.new +.if defined(ENABLE_WIDEC) + cat ${NCURSES_DIR}/include/curses.wide >> $@.new +.endif + cat ${NCURSES_DIR}/include/curses.tail >> $@.new + mv -f $@.new $@ + +# Generated intermediate files +keys.list: MKkeys_list.sh Caps + AWK=${AWK} sh ${NCURSES_DIR}/ncurses/tinfo/MKkeys_list.sh \ + ${NCURSES_DIR}/include/Caps | LC_ALL=C sort > keys.list + +# Build tools +build-tools: make_hash make_keys + +make_keys: make_keys.c names.c ncurses_def.h ${HEADERS} + ${CC} -o $@ ${CFLAGS} ${NCURSES_DIR}/ncurses/tinfo/make_keys.c + +make_hash: comp_hash.c hashsize.h ncurses_def.h ${HEADERS} + ${CC} -o $@ ${CFLAGS} -DMAIN_PROGRAM \ + ${NCURSES_DIR}/ncurses/tinfo/comp_hash.c + +# ./configure generated +MKterm.h.awk: MKterm.h.awk.in + sed <${NCURSES_DIR}/include/MKterm.h.awk.in >$@ \ + -e "/@BROKEN_LINKER@/s%%${BROKEN_LINKER}%" \ + -e "/@NCURSES_MAJOR@/s%%${NCURSES_MAJOR}%" \ + -e "/@NCURSES_MINOR@/s%%${NCURSES_MINOR}%" \ + -e "/@NCURSES_CONST@/s%%${NCURSES_CONST}%" \ + -e "/@NCURSES_TPARM_VARARGS@/s%%${NCURSES_TPARM_VARARGS}%" \ + -e "/@NCURSES_SBOOL@/s%%${NCURSES_SBOOL}%" \ + -e "/@NCURSES_XNAMES@/s%%${NCURSES_XNAMES}%" \ + -e "/@HAVE_TERMIOS_H@/s%%${HAVE_TERMIOS_H}%" \ + -e "/@HAVE_TERMIO_H@/s%%${HAVE_TERMIO_H}%" \ + -e "/@HAVE_TCGETATTR@/s%%${HAVE_TCGETATTR}%" \ + -e "s%@cf_cv_enable_reentrant@%${ENABLE_REENTRANT}%g" + +termcap.h: termcap.h.in + sed <${NCURSES_DIR}/include/termcap.h.in >$@ \ + -e "/@NCURSES_MAJOR@/s%%${NCURSES_MAJOR}%" \ + -e "/@NCURSES_MINOR@/s%%${NCURSES_MINOR}%" \ + -e "/@NCURSES_CONST@/s%%${NCURSES_CONST}%" \ + -e "/@NCURSES_OSPEED@/s%%${NCURSES_OSPEED}%" + +curses.head: curses.h.in + sed <${NCURSES_DIR}/include/curses.h.in >$@ \ + -e "/@BROKEN_LINKER@/s%%${BROKEN_LINKER}%" \ + -e "/@HAVE_VSSCANF@/s%%${HAVE_VSSCANF}%" \ + -e "/@NCURSES_CH_T@/s%%${NCURSES_CH_T}%" \ + -e "/@NCURSES_CONST@/s%%${NCURSES_CONST}%" \ + -e "/@NCURSES_EXT_COLORS@/s%%${NCURSES_EXT_COLORS}%" \ + -e "/@NCURSES_EXT_FUNCS@/s%%${NCURSES_EXT_FUNCS}%" \ + -e "/@NCURSES_INLINE@/s%%${NCURSES_INLINE}%" \ + -e "/@NCURSES_LIBUTF8@/s%%${NCURSES_LIBUTF8}%" \ + -e "/@NCURSES_MAJOR@/s%%${NCURSES_MAJOR}%" \ + -e "/@NCURSES_MBSTATE_T@/s%%${NCURSES_MBSTATE_T}%" \ + -e "/@NCURSES_MINOR@/s%%${NCURSES_MINOR}%" \ + -e "/@NCURSES_MOUSE_VERSION@/s%%${NCURSES_MOUSE_VERSION}%" \ + -e "/@NCURSES_OK_WCHAR_T@/s%%${NCURSES_OK_WCHAR_T}%" \ + -e "/@NCURSES_OPAQUE@/s%%${NCURSES_OPAQUE}%" \ + -e "/@NCURSES_PATCH@/s%%${NCURSES_PATCH}%" \ + -e "/@NCURSES_SIZE_T@/s%%${NCURSES_SIZE_T}%" \ + -e "/@NCURSES_TPARM_VARARGS@/s%%${NCURSES_TPARM_VARARGS}%" \ + -e "/@NCURSES_WCHAR_T@/s%%${NCURSES_WCHAR_T}%" \ + -e "/@NCURSES_WCHAR_T@/s%%${NCURSES_WCHAR_T}%" \ + -e "/@NCURSES_WINT_T@/s%%${NCURSES_WINT_T}%" \ + -e "/@NEED_WCHAR_H@/s%%${NEED_WCHAR_H}%" \ + -e "/@USE_CXX_BOOL@/s%%${USE_CXX_BOOL}%" \ + -e "s%@cf_cv_1UL@%${ONEUL}%g" \ + -e "s%@cf_cv_builtin_bool@%${BUILTIN_BOOL}%g" \ + -e "s%@cf_cv_enable_lp64@%${ENABLE_LP64}%g" \ + -e "s%@cf_cv_enable_opaque@%${ENABLE_OPAQUE}%g" \ + -e "s%@cf_cv_enable_reentrant@%${ENABLE_REENTRANT}%g" \ + -e "s%@cf_cv_header_stdbool_h@%${HEADER_STDBOOL}%g" \ + -e "s%@cf_cv_type_of_bool@%${TYPE_OF_BOOL}%g" \ + -e "s%@cf_cv_typeof_chtype@%${TYPEOF_CHTYPE}%g" \ + -e "s%@cf_cv_typeof_mmask_t@%${TYPEOF_MMASK_T}%g" \ + -e "s/ _WCHAR_T/ __wchar_t/g" \ + -e "s/ _WINT_T/ __wint_t/g" + +unctrl.h: unctrl.h.in + sed <${NCURSES_DIR}/include/$@.in >$@ \ + -e "/@NCURSES_MAJOR@/s%%${NCURSES_MAJOR}%" \ + -e "/@NCURSES_MINOR@/s%%${NCURSES_MINOR}%" + +# MAN page gunk +terminfo.5: MKterminfo.sh terminfo.head Caps + sh ${NCURSES_DIR}/man/MKterminfo.sh ${NCURSES_DIR}/man/terminfo.head \ + ${NCURSES_DIR}/include/Caps ${NCURSES_DIR}/man/terminfo.tail >$@ + +CLEANFILES+= terminfo.5 + +.PATH: ${NCURSES_DIR}/man +MAN= \ + curs_addch.3 \ + curs_addchstr.3 \ + curs_addstr.3 \ + curs_attr.3 \ + curs_beep.3 \ + curs_bkgd.3 \ + curs_bkgrnd.3 \ + curs_border.3 \ + curs_border_set.3 \ + curs_clear.3 \ + curs_color.3 \ + curs_delch.3 \ + curs_deleteln.3 \ + curs_extend.3 \ + curs_getcchar.3 \ + curs_getch.3 \ + curs_getstr.3 \ + curs_getyx.3 \ + curs_inch.3 \ + curs_inchstr.3 \ + curs_initscr.3 \ + curs_inopts.3 \ + curs_insch.3 \ + curs_insstr.3 \ + curs_instr.3 \ + curs_inwstr.3 \ + curs_kernel.3 \ + curs_legacy.3 \ + curs_memleaks.3 \ + curs_mouse.3 \ + curs_move.3 \ + curs_opaque.3 \ + curs_outopts.3 \ + curs_overlay.3 \ + curs_pad.3 \ + curs_print.3 \ + curs_refresh.3 \ + curs_scr_dump.3 \ + curs_scroll.3 \ + curs_slk.3 \ + curs_termattrs.3 \ + curs_termcap.3 \ + curs_terminfo.3 \ + curs_threads.3 \ + curs_touch.3 \ + curs_trace.3 \ + curs_util.3 \ + curs_window.3 \ + default_colors.3 \ + define_key.3 \ + key_defined.3 \ + keybound.3 \ + keyok.3 \ + legacy_coding.3 \ + ncurses.3 \ + resizeterm.3 \ + wresize.3 + +.if defined(ENABLE_WIDEC) +MAN+= \ + curs_add_wch.3 \ + curs_add_wchstr.3 \ + curs_addwstr.3 \ + curs_get_wch.3 \ + curs_get_wstr.3 \ + curs_in_wch.3 \ + curs_in_wchstr.3 \ + curs_ins_wch.3 \ + curs_ins_wstr.3 \ + curs_printw.3 \ + curs_scanw.3 +.endif + +CLEANFILES+= ${MAN:M*.3} + +MAN+= term.5 terminfo.5 +MAN+= term.7 + +MLINKS= ncurses.3 curses.3 \ + curs_addch.3 addch.3 \ + curs_addch.3 echochar.3 \ + curs_addch.3 mvaddch.3 \ + curs_addch.3 mvwaddch.3 \ + curs_addch.3 waddch.3 \ + curs_addch.3 wechochar.3 \ + curs_addchstr.3 addchnstr.3 \ + curs_addchstr.3 addchstr.3 \ + curs_addchstr.3 mvaddchnstr.3 \ + curs_addchstr.3 mvaddchstr.3 \ + curs_addchstr.3 mvwaddchnstr.3 \ + curs_addchstr.3 mvwaddchstr.3 \ + curs_addchstr.3 waddchnstr.3 \ + curs_addchstr.3 waddchstr.3 \ + curs_addstr.3 addnstr.3 \ + curs_addstr.3 addstr.3 \ + curs_addstr.3 mvaddnstr.3 \ + curs_addstr.3 mvaddstr.3 \ + curs_addstr.3 mvwaddnstr.3 \ + curs_addstr.3 mvwaddstr.3 \ + curs_addstr.3 waddnstr.3 \ + curs_addstr.3 waddstr.3 \ + curs_attr.3 PAIR_NUMBER.3 \ + curs_attr.3 attr_get.3 \ + curs_attr.3 attr_off.3 \ + curs_attr.3 attr_on.3 \ + curs_attr.3 attr_set.3 \ + curs_attr.3 attroff.3 \ + curs_attr.3 attron.3 \ + curs_attr.3 attrset.3 \ + curs_attr.3 chgat.3 \ + curs_attr.3 color_set.3 \ + curs_attr.3 mvchgat.3 \ + curs_attr.3 mvwchgat.3 \ + curs_attr.3 standend.3 \ + curs_attr.3 standout.3 \ + curs_attr.3 wattr_get.3 \ + curs_attr.3 wattr_off.3 \ + curs_attr.3 wattr_on.3 \ + curs_attr.3 wattr_set.3 \ + curs_attr.3 wattroff.3 \ + curs_attr.3 wattron.3 \ + curs_attr.3 wattrset.3 \ + curs_attr.3 wchgat.3 \ + curs_attr.3 wcolor_set.3 \ + curs_attr.3 wstandend.3 \ + curs_attr.3 wstandout.3 \ + curs_beep.3 beep.3 \ + curs_beep.3 flash.3 \ + curs_bkgd.3 bkgd.3 \ + curs_bkgd.3 bkgdset.3 \ + curs_bkgd.3 getbkgd.3 \ + curs_bkgd.3 wbkgd.3 \ + curs_bkgd.3 wbkgdset.3 \ + curs_bkgrnd.3 bkgrnd.3 \ + curs_bkgrnd.3 bkgrndset.3 \ + curs_bkgrnd.3 getbkgrnd.3 \ + curs_bkgrnd.3 wbkgrnd.3 \ + curs_bkgrnd.3 wbkgrndset.3 \ + curs_bkgrnd.3 wgetbkgrnd.3 \ + curs_border.3 border.3 \ + curs_border.3 box.3 \ + curs_border.3 hline.3 \ + curs_border.3 mvhline.3 \ + curs_border.3 mvvline.3 \ + curs_border.3 mvwhline.3 \ + curs_border.3 mvwvline.3 \ + curs_border.3 vline.3 \ + curs_border.3 wborder.3 \ + curs_border.3 whline.3 \ + curs_border.3 wvline.3 \ + curs_border_set.3 border_set.3 \ + curs_border_set.3 box_set.3 \ + curs_border_set.3 hline_set.3 \ + curs_border_set.3 mvhline_set.3 \ + curs_border_set.3 mvvline_set.3 \ + curs_border_set.3 mvwhline_set.3 \ + curs_border_set.3 mvwvline_set.3 \ + curs_border_set.3 vline_set.3 \ + curs_border_set.3 wborder_set.3 \ + curs_border_set.3 whline_set.3 \ + curs_border_set.3 wvline_set.3 \ + curs_clear.3 clear.3 \ + curs_clear.3 clrtobot.3 \ + curs_clear.3 clrtoeol.3 \ + curs_clear.3 erase.3 \ + curs_clear.3 wclear.3 \ + curs_clear.3 wclrtobot.3 \ + curs_clear.3 wclrtoeol.3 \ + curs_clear.3 werase.3 \ + curs_color.3 COLOR_PAIR.3 \ + curs_color.3 can_change_color.3 \ + curs_color.3 color_content.3 \ + curs_color.3 has_colors.3 \ + curs_color.3 init_color.3 \ + curs_color.3 init_pair.3 \ + curs_color.3 pair_content.3 \ + curs_color.3 start_color.3 \ + curs_delch.3 delch.3 \ + curs_delch.3 mvdelch.3 \ + curs_delch.3 mvwdelch.3 \ + curs_delch.3 wdelch.3 \ + curs_deleteln.3 deleteln.3 \ + curs_deleteln.3 insdelln.3 \ + curs_deleteln.3 insertln.3 \ + curs_deleteln.3 wdeleteln.3 \ + curs_deleteln.3 winsdelln.3 \ + curs_deleteln.3 winsertln.3 \ + curs_extend.3 curses_version.3 \ + curs_extend.3 use_extended_names.3 \ + curs_getcchar.3 getcchar.3 \ + curs_getcchar.3 setcchar.3 \ + curs_getch.3 getch.3 \ + curs_getch.3 has_key.3 \ + curs_getch.3 mvgetch.3 \ + curs_getch.3 mvwgetch.3 \ + curs_getch.3 ungetch.3 \ + curs_getch.3 wgetch.3 \ + curs_getstr.3 getnstr.3 \ + curs_getstr.3 getstr.3 \ + curs_getstr.3 mvgetnstr.3 \ + curs_getstr.3 mvgetstr.3 \ + curs_getstr.3 mvwgetnstr.3 \ + curs_getstr.3 mvwgetstr.3 \ + curs_getstr.3 wgetnstr.3 \ + curs_getstr.3 wgetstr.3 \ + curs_getyx.3 getbegyx.3 \ + curs_getyx.3 getmaxyx.3 \ + curs_getyx.3 getparyx.3 \ + curs_getyx.3 getyx.3 \ + curs_inch.3 inch.3 \ + curs_inch.3 mvinch.3 \ + curs_inch.3 mvwinch.3 \ + curs_inch.3 winch.3 \ + curs_inchstr.3 inchnstr.3 \ + curs_inchstr.3 inchstr.3 \ + curs_inchstr.3 mvinchnstr.3 \ + curs_inchstr.3 mvinchstr.3 \ + curs_inchstr.3 mvwinchnstr.3 \ + curs_inchstr.3 mvwinchstr.3 \ + curs_inchstr.3 winchnstr.3 \ + curs_inchstr.3 winchstr.3 \ + curs_initscr.3 delscreen.3 \ + curs_initscr.3 endwin.3 \ + curs_initscr.3 initscr.3 \ + curs_initscr.3 isendwin.3 \ + curs_initscr.3 newterm.3 \ + curs_initscr.3 set_term.3 \ + curs_inopts.3 cbreak.3 \ + curs_inopts.3 echo.3 \ + curs_inopts.3 halfdelay.3 \ + curs_inopts.3 intrflush.3 \ + curs_inopts.3 keypad.3 \ + curs_inopts.3 meta.3 \ + curs_inopts.3 nocbreak.3 \ + curs_inopts.3 nodelay.3 \ + curs_inopts.3 noecho.3 \ + curs_inopts.3 noqiflush.3 \ + curs_inopts.3 noraw.3 \ + curs_inopts.3 notimeout.3 \ + curs_inopts.3 qiflush.3 \ + curs_inopts.3 raw.3 \ + curs_inopts.3 timeout.3 \ + curs_inopts.3 typeahead.3 \ + curs_inopts.3 wtimeout.3 \ + curs_insch.3 insch.3 \ + curs_insch.3 mvinsch.3 \ + curs_insch.3 mvwinsch.3 \ + curs_insch.3 winsch.3 \ + curs_insstr.3 insnstr.3 \ + curs_insstr.3 insstr.3 \ + curs_insstr.3 mvinsnstr.3 \ + curs_insstr.3 mvinsstr.3 \ + curs_insstr.3 mvwinsnstr.3 \ + curs_insstr.3 mvwinsstr.3 \ + curs_insstr.3 winsnstr.3 \ + curs_insstr.3 winsstr.3 \ + curs_instr.3 innstr.3 \ + curs_instr.3 instr.3 \ + curs_instr.3 mvinnstr.3 \ + curs_instr.3 mvinstr.3 \ + curs_instr.3 mvwinnstr.3 \ + curs_instr.3 mvwinstr.3 \ + curs_instr.3 winnstr.3 \ + curs_instr.3 winstr.3 \ + curs_kernel.3 curs_set.3 \ + curs_kernel.3 def_prog_mode.3 \ + curs_kernel.3 def_shell_mode.3 \ + curs_kernel.3 getsyx.3 \ + curs_kernel.3 napms.3 \ + curs_kernel.3 reset_prog_mode.3 \ + curs_kernel.3 reset_shell_mode.3 \ + curs_kernel.3 resetty.3 \ + curs_kernel.3 ripoffline.3 \ + curs_kernel.3 savetty.3 \ + curs_kernel.3 setsyx.3 \ + curs_legacy.3 getbegx.3 \ + curs_legacy.3 getbegy.3 \ + curs_legacy.3 getcurx.3 \ + curs_legacy.3 getcury.3 \ + curs_legacy.3 getmaxx.3 \ + curs_legacy.3 getmaxy.3 \ + curs_legacy.3 getparx.3 \ + curs_legacy.3 getpary.3 \ + curs_memleaks.3 _nc_free_and_exit.3 \ + curs_memleaks.3 _nc_freeall.3 \ + curs_mouse.3 getmouse.3 \ + curs_mouse.3 mouse_trafo.3 \ + curs_mouse.3 mouseinterval.3 \ + curs_mouse.3 mousemask.3 \ + curs_mouse.3 ungetmouse.3 \ + curs_mouse.3 wenclose.3 \ + curs_mouse.3 wmouse_trafo.3 \ + curs_move.3 move.3 \ + curs_move.3 wmove.3 \ + curs_opaque.3 is_cleared.3 \ + curs_opaque.3 is_idcok.3 \ + curs_opaque.3 is_idlok.3 \ + curs_opaque.3 is_immedok.3 \ + curs_opaque.3 is_keypad.3 \ + curs_opaque.3 is_leaveok.3 \ + curs_opaque.3 is_nodelay.3 \ + curs_opaque.3 is_notimeout.3 \ + curs_opaque.3 is_scrollok.3 \ + curs_opaque.3 is_syncok.3 \ + curs_opaque.3 is_timeout.3 \ + curs_opaque.3 wgetparent.3 \ + curs_opaque.3 wgetscrreg.3 \ + curs_outopts.3 clearok.3 \ + curs_outopts.3 idcok.3 \ + curs_outopts.3 idlok.3 \ + curs_outopts.3 immedok.3 \ + curs_outopts.3 leaveok.3 \ + curs_outopts.3 nl.3 \ + curs_outopts.3 nonl.3 \ + curs_outopts.3 scrollok.3 \ + curs_outopts.3 setscrreg.3 \ + curs_outopts.3 wsetscrreg.3 \ + curs_overlay.3 copywin.3 \ + curs_overlay.3 overlay.3 \ + curs_overlay.3 overwrite.3 \ + curs_pad.3 newpad.3 \ + curs_pad.3 pecho_wchar.3 \ + curs_pad.3 pechochar.3 \ + curs_pad.3 pnoutrefresh.3 \ + curs_pad.3 prefresh.3 \ + curs_pad.3 subpad.3 \ + curs_print.3 mcprint.3 \ + curs_refresh.3 doupdate.3 \ + curs_refresh.3 redrawwin.3 \ + curs_refresh.3 refresh.3 \ + curs_refresh.3 wnoutrefresh.3 \ + curs_refresh.3 wredrawln.3 \ + curs_refresh.3 wrefresh.3 \ + curs_scr_dump.3 scr_dump.3 \ + curs_scr_dump.3 scr_init.3 \ + curs_scr_dump.3 scr_restore.3 \ + curs_scr_dump.3 scr_set.3 \ + curs_scroll.3 scrl.3 \ + curs_scroll.3 scroll.3 \ + curs_scroll.3 wscrl.3 \ + curs_slk.3 slk_attr.3 \ + curs_slk.3 slk_attr_off.3 \ + curs_slk.3 slk_attr_on.3 \ + curs_slk.3 slk_attr_set.3 \ + curs_slk.3 slk_attroff.3 \ + curs_slk.3 slk_attron.3 \ + curs_slk.3 slk_attrset.3 \ + curs_slk.3 slk_clear.3 \ + curs_slk.3 slk_color.3 \ + curs_slk.3 slk_init.3 \ + curs_slk.3 slk_label.3 \ + curs_slk.3 slk_noutrefresh.3 \ + curs_slk.3 slk_refresh.3 \ + curs_slk.3 slk_restore.3 \ + curs_slk.3 slk_set.3 \ + curs_slk.3 slk_touch.3 \ + curs_termattrs.3 baudrate.3 \ + curs_termattrs.3 erasechar.3 \ + curs_termattrs.3 erasewchar.3 \ + curs_termattrs.3 has_ic.3 \ + curs_termattrs.3 has_il.3 \ + curs_termattrs.3 killchar.3 \ + curs_termattrs.3 killwchar.3 \ + curs_termattrs.3 longname.3 \ + curs_termattrs.3 term_attrs.3 \ + curs_termattrs.3 termattrs.3 \ + curs_termattrs.3 termname.3 \ + curs_termcap.3 termcap.3 \ + curs_termcap.3 tgetent.3 \ + curs_termcap.3 tgetflag.3 \ + curs_termcap.3 tgetnum.3 \ + curs_termcap.3 tgetstr.3 \ + curs_termcap.3 tgoto.3 \ + curs_termcap.3 tputs.3 \ + curs_terminfo.3 del_curterm.3 \ + curs_terminfo.3 mvcur.3 \ + curs_terminfo.3 putp.3 \ + curs_terminfo.3 restartterm.3 \ + curs_terminfo.3 set_curterm.3 \ + curs_terminfo.3 setterm.3 \ + curs_terminfo.3 setupterm.3 \ + curs_terminfo.3 tigetflag.3 \ + curs_terminfo.3 tigetnum.3 \ + curs_terminfo.3 tigetstr.3 \ + curs_terminfo.3 tparm.3 \ + curs_terminfo.3 vid_attr.3 \ + curs_terminfo.3 vid_puts.3 \ + curs_terminfo.3 vidattr.3 \ + curs_terminfo.3 vidputs.3 \ + curs_threads.3 set_escdelay.3 \ + curs_threads.3 set_tabsize.3 \ + curs_threads.3 use_screen.3 \ + curs_threads.3 use_window.3 \ + curs_touch.3 is_linetouched.3 \ + curs_touch.3 is_wintouched.3 \ + curs_touch.3 touchline.3 \ + curs_touch.3 touchwin.3 \ + curs_touch.3 untouchwin.3 \ + curs_touch.3 wtouchln.3 \ + curs_trace.3 _nc_tracebits.3 \ + curs_trace.3 _traceattr.3 \ + curs_trace.3 _traceattr2.3 \ + curs_trace.3 _tracechar.3 \ + curs_trace.3 _tracechtype.3 \ + curs_trace.3 _tracechtype2.3 \ + curs_trace.3 _tracedump.3 \ + curs_trace.3 _tracef.3 \ + curs_trace.3 _tracemouse.3 \ + curs_trace.3 trace.3 \ + curs_util.3 delay_output.3 \ + curs_util.3 filter.3 \ + curs_util.3 flushinp.3 \ + curs_util.3 getwin.3 \ + curs_util.3 key_name.3 \ + curs_util.3 keyname.3 \ + curs_util.3 nofilter.3 \ + curs_util.3 putwin.3 \ + curs_util.3 unctrl.3 \ + curs_util.3 use_env.3 \ + curs_util.3 wunctrl.3 \ + curs_window.3 delwin.3 \ + curs_window.3 derwin.3 \ + curs_window.3 dupwin.3 \ + curs_window.3 mvderwin.3 \ + curs_window.3 mvwin.3 \ + curs_window.3 newwin.3 \ + curs_window.3 subwin.3 \ + curs_window.3 syncok.3 \ + curs_window.3 wcursyncup.3 \ + curs_window.3 wsyncdown.3 \ + curs_window.3 wsyncup.3 \ + default_colors.3 assume_default_colors.3 \ + default_colors.3 use_default_colors.3 \ + legacy_coding.3 use_legacy_coding.3 \ + resizeterm.3 is_term_resized.3 \ + resizeterm.3 resize_term.3 + +.if defined(ENABLE_WIDEC) +MLINKS+=curs_add_wch.3 add_wch.3 \ + curs_add_wch.3 echo_wchar.3 \ + curs_add_wch.3 mvadd_wch.3 \ + curs_add_wch.3 mvwadd_wch.3 \ + curs_add_wch.3 wadd_wch.3 \ + curs_add_wch.3 wecho_wchar.3 \ + curs_add_wchstr.3 add_wchnstr.3 \ + curs_add_wchstr.3 add_wchstr.3 \ + curs_add_wchstr.3 mvadd_wchnstr.3 \ + curs_add_wchstr.3 mvadd_wchstr.3 \ + curs_add_wchstr.3 mvwadd_wchnstr.3 \ + curs_add_wchstr.3 mvwadd_wchstr.3 \ + curs_add_wchstr.3 wadd_wchnstr.3 \ + curs_add_wchstr.3 wadd_wchstr.3 \ + curs_addwstr.3 addnwstr.3 \ + curs_addwstr.3 addwstr.3 \ + curs_addwstr.3 mvaddnwstr.3 \ + curs_addwstr.3 mvaddwstr.3 \ + curs_addwstr.3 mvwaddnwstr.3 \ + curs_addwstr.3 mvwaddwstr.3 \ + curs_addwstr.3 waddnwstr.3 \ + curs_addwstr.3 waddwstr.3 \ + curs_get_wch.3 get_wch.3 \ + curs_get_wch.3 mvget_wch.3 \ + curs_get_wch.3 mvwget_wch.3 \ + curs_get_wch.3 unget_wch.3 \ + curs_get_wch.3 wget_wch.3 \ + curs_get_wstr.3 get_wstr.3 \ + curs_get_wstr.3 getn_wstr.3 \ + curs_get_wstr.3 mvget_wstr.3 \ + curs_get_wstr.3 mvgetn_wstr.3 \ + curs_get_wstr.3 mvwget_wstr.3 \ + curs_get_wstr.3 mvwgetn_wstr.3 \ + curs_get_wstr.3 wget_wstr.3 \ + curs_get_wstr.3 wgetn_wstr.3 \ + curs_in_wch.3 in_wch.3 \ + curs_in_wch.3 mvin_wch.3 \ + curs_in_wch.3 mvwin_wch.3 \ + curs_in_wch.3 win_wch.3 \ + curs_in_wchstr.3 in_wchnstr.3 \ + curs_in_wchstr.3 in_wchstr.3 \ + curs_in_wchstr.3 mvin_wchnstr.3 \ + curs_in_wchstr.3 mvin_wchstr.3 \ + curs_in_wchstr.3 mvwin_wchnstr.3 \ + curs_in_wchstr.3 mvwin_wchstr.3 \ + curs_in_wchstr.3 win_wchnstr.3 \ + curs_in_wchstr.3 win_wchstr.3 \ + curs_ins_wch.3 ins_wch.3 \ + curs_ins_wch.3 mvins_wch.3 \ + curs_ins_wch.3 mvwins_wch.3 \ + curs_ins_wch.3 wins_wch.3 \ + curs_ins_wstr.3 ins_nwstr.3 \ + curs_ins_wstr.3 ins_wstr.3 \ + curs_ins_wstr.3 mvins_nwstr.3 \ + curs_ins_wstr.3 mvins_wstr.3 \ + curs_ins_wstr.3 mvwins_nwstr.3 \ + curs_ins_wstr.3 mvwins_wstr.3 \ + curs_ins_wstr.3 wins_nwstr.3 \ + curs_ins_wstr.3 wins_wstr.3 \ + curs_inwstr.3 innwstr.3 \ + curs_inwstr.3 inwstr.3 \ + curs_inwstr.3 mvinnwstr.3 \ + curs_inwstr.3 mvinwstr.3 \ + curs_inwstr.3 mvwinnwstr.3 \ + curs_inwstr.3 mvwinwstr.3 \ + curs_inwstr.3 winnwstr.3 \ + curs_inwstr.3 winwstr.3 \ + curs_printw.3 mvprintw.3 \ + curs_printw.3 mvwprintw.3 \ + curs_printw.3 printw.3 \ + curs_printw.3 vw_printw.3 \ + curs_printw.3 vwprintw.3 \ + curs_printw.3 wprintw.3 \ + curs_scanw.3 mvscanw.3 \ + curs_scanw.3 mvwscanw.3 \ + curs_scanw.3 scanw.3 \ + curs_scanw.3 vw_scanw.3 \ + curs_scanw.3 vwscanw.3 \ + curs_scanw.3 wscanw.3 +.endif + + +.include <bsd.lib.mk> + +# Keep the .SUFFIXES line after the include of bsd.lib.mk +.SUFFIXES: .3 .3x +.3x.3: + cat ${.IMPSRC} > ${.TARGET} diff --git a/lib/ncurses/ncurses/ncurses_cfg.h b/lib/ncurses/ncurses/ncurses_cfg.h new file mode 100644 index 0000000..42570c9 --- /dev/null +++ b/lib/ncurses/ncurses/ncurses_cfg.h @@ -0,0 +1,205 @@ +/* include/ncurses_cfg.h. Generated automatically by configure. */ +/**************************************************************************** + * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), 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 <dickey@clark.net> 1997 * + ****************************************************************************/ +/* + * $Id: ncurses_cfg.hin,v 1.7 2005/01/02 01:26:58 tom Exp $ + * + * This is a template-file used to generate the "ncurses_cfg.h" file. + * + * Rather than list every definition, the configuration script substitutes the + * definitions that it finds using 'sed'. You need a patch (original date + * 971222) to autoconf 2.12 or 2.13 to do this. + * + * See: + * http://invisible-island.net/autoconf/ + * ftp://invisible-island.net/autoconf/ + */ + +/* $FreeBSD$ */ + +#ifndef NC_CONFIG_H +#define NC_CONFIG_H + +#ifdef __cplusplus +#include <stdlib.h> +#endif +#define BSD_TPUTS 1 +#define CC_HAS_PROTOS 1 +#define CPP_HAS_STATIC_CAST 1 +#define ETIP_NEEDS_MATH_H 1 +#define GCC_NORETURN __attribute__((noreturn)) +#define GCC_PRINTF 1 +#define GCC_SCANF 1 +#define GCC_UNUSED __attribute__((unused)) +#define HAVE_BIG_CORE 1 +#define HAVE_BSD_CGETENT 1 +#define HAVE_CURSES_VERSION 1 +#define HAVE_DIRENT_H 1 +#define HAVE_ERRNO 1 +#define HAVE_FCNTL_H 1 +#define HAVE_FORM_H 1 +#define HAVE_FSEEKO 1 +#define HAVE_GETCWD 1 +#define HAVE_GETEGID 1 +#define HAVE_GETEUID 1 +#define HAVE_GETOPT_H 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_GETTTYNAM 1 +#define HAVE_HAS_KEY 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_IOSTREAM 1 +#define HAVE_ISASCII 1 +#define HAVE_ISSETUGID 1 +#define HAVE_LANGINFO_CODESET 1 +#define HAVE_LIBFORM 1 +#define HAVE_LIBMENU 1 +#define HAVE_LIBPANEL 1 +#define HAVE_LIMITS_H 1 +#define HAVE_LINK 1 +#define HAVE_LOCALE_H 1 +#define HAVE_LONG_FILE_NAMES 1 +#define HAVE_MEMORY_H 1 +#define HAVE_MENU_H 1 +#define HAVE_MKSTEMP 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_NC_ALLOC_H 1 +#define HAVE_PANEL_H 1 +#define HAVE_POLL 1 +#define HAVE_POLL_H 1 +#define HAVE_REGEX_H_FUNCS 1 +#define HAVE_REMOVE 1 +#define HAVE_REMOVE 1 +#define HAVE_RESIZETERM 1 +#define HAVE_RESIZE_TERM 1 +#define HAVE_SELECT 1 +#define HAVE_SETBUF 1 +#define HAVE_SETBUFFER 1 +#define HAVE_SETVBUF 1 +#define HAVE_SIGACTION 1 +#define HAVE_SIGVEC 1 +#define HAVE_SIZECHANGE 1 +#define HAVE_SLK_COLOR 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRDUP 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STRSTR 1 +#define HAVE_SYMLINK 1 +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_PARAM_H 1 +#define HAVE_SYS_POLL_H 1 +#define HAVE_SYS_SELECT_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TIMES_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_TIME_SELECT 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_TCGETATTR 1 +#define HAVE_TCGETPGRP 1 +#define HAVE_TERMIOS_H 1 +#define HAVE_TIMES 1 +#define HAVE_TTYENT_H 1 +#define HAVE_TYPEINFO 1 +#define HAVE_UNISTD_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_UNLINK 1 +#define HAVE_USE_DEFAULT_COLORS 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_VSSCANF 1 +#define HAVE_WCTYPE_H 1 +#define HAVE_WRESIZE 1 +#define IOSTREAM_NAMESPACE 1 +#define MIXEDCASE_FILENAMES 1 +#define NCURSES_EXT_FUNCS 1 +#define NCURSES_NO_PADDING 1 +#define NCURSES_PATHSEP ':' +#define NCURSES_VERSION_STRING "5.7.20081102" +#define NDEBUG 1 +#define RETSIGTYPE void +#define SIG_ATOMIC_T volatile sig_atomic_t +#define SIZEOF_SIGNED_CHAR 1 +#define STDC_HEADERS 1 +#define SYSTEM_NAME "FreeBSD" +#define TERMPATH "/etc/termcap:/usr/share/misc/termcap" +#define TIME_WITH_SYS_TIME 1 +#define TYPEOF_CHTYPE int +#define USE_ASSUMED_COLOR 1 +#define USE_COLORFGBG 1 +#define USE_GETCAP 1 +#define USE_HASHMAP 1 +#define USE_LINKS 1 +#define USE_SIGWINCH 1 +#define USE_SYSMOUSE 1 +#define USE_TERMCAP 1 +#ifdef ENABLE_WIDEC +#define USE_WIDEC_SUPPORT 1 +#define HAVE_BTOWC 1 +#define HAVE_MBLEN 1 +#define HAVE_MBRLEN 1 +#define HAVE_MBRTOWC 1 +#define HAVE_MBSRTOWCS 1 +#define HAVE_MBSTOWCS 1 +#define HAVE_MBTOWC 1 +#define HAVE_PUTWC 1 +#define HAVE_WCSRTOMBS 1 +#define HAVE_WCSTOMBS 1 +#define HAVE_WCTOB 1 +#define HAVE_WCTOMB 1 +#define NEED_WCHAR_H 1 +#endif + +#include <ncurses_def.h> + + /* The C compiler may not treat these properly but C++ has to */ +#ifdef __cplusplus +#undef const +#undef inline +#else +#if defined(lint) || defined(TRACE) +#undef inline +#define inline /* nothing */ +#endif +#endif + + /* On HP-UX, the C compiler doesn't grok mbstate_t without + -D_XOPEN_SOURCE=500. However, this causes problems on + IRIX. So, we #define mbstate_t to int in configure.in + only for the C compiler if needed. */ +#ifndef __cplusplus +#ifdef NEED_MBSTATE_T_DEF +#define mbstate_t int +#endif +#endif + +#endif /* NC_CONFIG_H */ diff --git a/lib/ncurses/ncurses/pathnames.h b/lib/ncurses/ncurses/pathnames.h new file mode 100644 index 0000000..a0875ae --- /dev/null +++ b/lib/ncurses/ncurses/pathnames.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)pathnames.h 8.1 (Berkeley) 6/4/93 + * $FreeBSD$ + */ + +#define _PATH_DEF ".termcap /usr/share/misc/termcap" +#define _PATH_DEF_SEC "/usr/share/misc/termcap" diff --git a/lib/ncurses/ncurses/termcap.c b/lib/ncurses/ncurses/termcap.c new file mode 100644 index 0000000..f88e42e --- /dev/null +++ b/lib/ncurses/ncurses/termcap.c @@ -0,0 +1,262 @@ +/* A portion of this file is from ncurses: */ +/*************************************************************************** +* COPYRIGHT NOTICE * +**************************************************************************** +* ncurses is copyright (C) 1992-1995 * +* Zeyd M. Ben-Halim * +* zmbenhal@netcom.com * +* Eric S. Raymond * +* esr@snark.thyrsus.com * +* * +* Permission is hereby granted to reproduce and distribute ncurses * +* by any means and for any fee, whether alone or as part of a * +* larger distribution, in source or in binary form, PROVIDED * +* this notice is included with any such distribution, and is not * +* removed from any of its header files. Mention of ncurses in any * +* applications linked with it is highly appreciated. * +* * +* ncurses comes AS IS with no warranty, implied or expressed. * +* * +***************************************************************************/ + +#include <curses.priv.h> + +#include <string.h> +#include <term.h> +#include <tic.h> +#include <term_entry.h> + +/* The rest is from BSD */ +/* + * Copyright (c) 1980, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#ifndef lint +static const char sccsid[] = "@(#)termcap.c 8.1 (Berkeley) 6/4/93"; +#endif /* not lint */ + +#include <stdio.h> +#include <ctype.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <sys/param.h> +#include "pathnames.h" + +#define PBUFSIZ MAXPATHLEN /* max length of filename path */ +#define PVECSIZ 32 /* max number of names in path */ +#define TBUFSIZ 1024 /* max length of _nc_tgetent buffer */ + +char _nc_termcap[TBUFSIZ + 1]; /* Last getcap, provided to tgetent() emul */ + +/* + * termcap - routines for dealing with the terminal capability data base + * + * BUG: Should use a "last" pointer in tbuf, so that searching + * for capabilities alphabetically would not be a n**2/2 + * process when large numbers of capabilities are given. + * Note: If we add a last pointer now we will screw up the + * tc capability. We really should compile termcap. + * + * Essentially all the work here is scanning and decoding escapes + * in string capabilities. We don't use stdio because the editor + * doesn't, and because living w/o it is not hard. + */ + +/* + * Get an entry for terminal name in buffer _nc_termcap from the termcap + * file. + */ +int +_nc_read_termcap_entry(const char *const name, TERMTYPE *const tp) +{ + ENTRY *ep; + char *p; + char *cp; + char *dummy; + char **fname; + char *home; + int i; + char pathbuf[PBUFSIZ]; /* holds raw path of filenames */ + char *pathvec[PVECSIZ]; /* to point to names in pathbuf */ + char **pvec; /* holds usable tail of path vector */ + char *termpath; + + _nc_termcap[0] = '\0'; /* in case */ + dummy = NULL; + fname = pathvec; + pvec = pathvec; + p = pathbuf; + cp = getenv("TERMCAP"); + /* + * 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. 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 "$HOME/.termcap /etc/termcap" if no TERMPATH exists. + */ + if (!cp || *cp != '/') { /* no TERMCAP or it holds an entry */ + if ( (termpath = getenv("TERMPATH")) ) + strncpy(pathbuf, termpath, PBUFSIZ); + else { + if ( (home = getenv("HOME")) ) {/* set up default */ + strncpy(pathbuf, home, PBUFSIZ - 1); /* $HOME first */ + pathbuf[PBUFSIZ - 2] = '\0'; /* -2 because we add a slash */ + p += strlen(pathbuf); /* path, looking in */ + *p++ = '/'; + } /* if no $HOME look in current directory */ + strncpy(p, _PATH_DEF, PBUFSIZ - (p - pathbuf)); + } + } + else /* user-defined name in TERMCAP */ + strncpy(pathbuf, cp, PBUFSIZ); /* still can be tokenized */ + + /* For safety */ + if (issetugid()) + strcpy(pathbuf, _PATH_DEF_SEC); + + pathbuf[PBUFSIZ - 1] = '\0'; + + *fname++ = pathbuf; /* tokenize path into vector of names */ + while (*++p) + if (*p == ' ' || *p == ':') { + *p = '\0'; + while (*++p) + if (*p != ' ' && *p != ':') + break; + if (*p == '\0') + break; + *fname++ = p; + if (fname >= pathvec + PVECSIZ) { + fname--; + break; + } + } + *fname = (char *) 0; /* mark end of vector */ + if (cp && *cp && *cp != '/') + if (cgetset(cp) < 0) + return(-2); + + i = cgetent(&dummy, pathvec, (char *)name); + + if (i == 0) { + char *pd, *ps, *tok, *s, *tcs; + size_t len; + + pd = _nc_termcap; + ps = dummy; + if ((tok = strchr(ps, ':')) == NULL) { + len = strlen(ps); + if (len >= TBUFSIZ) + i = -1; + else + strcpy(pd, ps); + goto done; + } + len = tok - ps + 1; + if (pd + len + 1 - _nc_termcap >= TBUFSIZ) { + i = -1; + goto done; + } + memcpy(pd, ps, len); + ps += len; + pd += len; + *pd = '\0'; + tcs = pd - 1; + for (;;) { + while ((tok = strsep(&ps, ":")) != NULL && + *(tok - 2) != '\\' && + (*tok == '\0' || *tok == '\\' || !isgraph(UChar(*tok)))) + ; + if (tok == NULL) + break; + for (s = tcs; s != NULL && s[1] != '\0'; + s = strchr(s, ':')) { + s++; + if (s[0] == tok[0] && s[1] == tok[1]) + goto skip_it; + } + len = strlen(tok); + if (pd + len + 1 - _nc_termcap >= TBUFSIZ) { + i = -1; + break; + } + memcpy(pd, tok, len); + pd += len; + *pd++ = ':'; + *pd = '\0'; + skip_it: ; + } + } +done: + if (dummy) + free(dummy); + + +/* + * From here on is ncurses-specific glue code + */ + + if (i < 0) + return(TGETENT_ERR); + + _nc_set_source("TERMCAP"); + _nc_read_entry_source((FILE *)NULL, _nc_termcap, FALSE, TRUE, NULLHOOK); + + if (_nc_head == (ENTRY *)NULL) + return(TGETENT_ERR); + + /* resolve all use references */ + _nc_resolve_uses2(TRUE, FALSE); + + for_entry_list(ep) + if (_nc_name_match(ep->tterm.term_names, name, "|:")) + { + /* + * Make a local copy of the terminal capabilities, delinked + * from the list. + */ + memcpy(tp, &ep->tterm, sizeof(TERMTYPE)); + _nc_delink_entry(_nc_head, &(ep->tterm)); + free(ep); + _nc_free_entries(_nc_head); + _nc_head = _nc_tail = NULL; /* do not reuse! */ + + return TGETENT_YES; /* OK */ + } + + _nc_free_entries(_nc_head); + _nc_head = _nc_tail = NULL; /* do not reuse! */ + return(TGETENT_NO); /* not found */ +} diff --git a/lib/ncurses/ncursesw/Makefile b/lib/ncurses/ncursesw/Makefile new file mode 100644 index 0000000..277c90b --- /dev/null +++ b/lib/ncurses/ncursesw/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +ENABLE_WIDEC= + +.PATH: ${.CURDIR}/../ncurses + +.include "${.CURDIR}/../ncurses/Makefile" diff --git a/lib/ncurses/panel/Makefile b/lib/ncurses/panel/Makefile new file mode 100644 index 0000000..12b8b06 --- /dev/null +++ b/lib/ncurses/panel/Makefile @@ -0,0 +1,67 @@ +# $FreeBSD$ + +.include "${.CURDIR}/../config.mk" + +SRCDIR= ${NCURSES_DIR}/panel + +LIB= panel${LIB_SUFFIX} + +.PATH: ${SRCDIR} +SRCS= \ + ncurses_def.h \ + p_above.c \ + p_below.c \ + p_bottom.c \ + p_delete.c \ + p_hidden.c \ + p_hide.c \ + p_move.c \ + p_new.c \ + p_replace.c \ + p_show.c \ + p_top.c \ + p_update.c \ + p_user.c \ + p_win.c \ + panel.c + +CLEANFILES= ncurses_def.h + +CFLAGS+= -I${SRCDIR} + +DPADD= ${LIBNCURSES${LIB_SUFFIX:U}} +LDADD= -lncurses${LIB_SUFFIX} + +.if defined(ENABLE_WIDEC) +INCS= panel.h +.endif + +# generate MAN +.PATH: ${NCURSES_DIR}/man +MAN= \ + panel.3 + +CLEANFILES+= ${MAN:M*.3} + +MLINKS= panel.3 bottom_panel.3 \ + panel.3 del_panel.3 \ + panel.3 hide_panel.3 \ + panel.3 move_panel.3 \ + panel.3 new_panel.3 \ + panel.3 panel_above.3 \ + panel.3 panel_below.3 \ + panel.3 panel_hidden.3 \ + panel.3 panel_userptr.3 \ + panel.3 panel_window.3 \ + panel.3 replace_panel.3 \ + panel.3 set_panel_userptr.3 \ + panel.3 show_panel.3 \ + panel.3 top_panel.3 \ + panel.3 update_panels.3 + +.include <bsd.lib.mk> + +# Keep the .SUFFIXES line after the include of bsd.lib.mk +.SUFFIXES: .3 .3x +.3x.3: + cat ${.IMPSRC} > ${.TARGET} diff --git a/lib/ncurses/panelw/Makefile b/lib/ncurses/panelw/Makefile new file mode 100644 index 0000000..7642e34 --- /dev/null +++ b/lib/ncurses/panelw/Makefile @@ -0,0 +1,5 @@ +# $FreeBSD$ + +ENABLE_WIDEC= + +.include "${.CURDIR}/../panel/Makefile" |