From: Thomas E. Dickey Date: Sat, 14 Apr 2018 22:50:05 +0000 (+0000) Subject: ncurses 6.1 - patch 20180414 X-Git-Tag: v6.2~92 X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff_plain;h=b93d96b78ac5250135975df892cee793dc3c0797 ncurses 6.1 - patch 20180414 + modify form library to optionally delay cursor movement on a field edge/boundary (patch by Leon Winter). + modify form library to avoid unnecessary update of cursor position in non-public fields (patch by Leon Winter). + remove unused _nc_import_termtype2() function. + also add/improve null-pointer checks in other places + add a null-pointer check in _nc_parse_entry to handle an error when a use-name is invalid syntax (report by Chung-Yi Lin). --- diff --git a/NEWS b/NEWS index 6027e9a8..1811e57b 100644 --- a/NEWS +++ b/NEWS @@ -25,7 +25,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.3111 2018/04/08 00:56:30 tom Exp $ +-- $Id: NEWS,v 1.3115 2018/04/14 21:22:06 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -45,6 +45,16 @@ 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. +20180414 + + modify form library to optionally delay cursor movement on a field + edge/boundary (patch by Leon Winter). + + modify form library to avoid unnecessary update of cursor position in + non-public fields (patch by Leon Winter). + + remove unused _nc_import_termtype2() function. + + also add/improve null-pointer checks in other places + + add a null-pointer check in _nc_parse_entry to handle an error when + a use-name is invalid syntax (report by Chung-Yi Lin). + 20180407 + clarify in manual pages that vwprintw and vwscanw are obsolete, not part of X/Open Curses since 2007. diff --git a/VERSION b/VERSION index 087738b2..1aed5674 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:10 6.1 20180407 +5:0:10 6.1 20180414 diff --git a/dist.mk b/dist.mk index 0496e0ec..adae67ed 100644 --- a/dist.mk +++ b/dist.mk @@ -25,7 +25,7 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: dist.mk,v 1.1218 2018/04/07 13:38:08 tom Exp $ +# $Id: dist.mk,v 1.1219 2018/04/14 16:58:18 tom Exp $ # Makefile for creating ncurses distributions. # # This only needs to be used directly as a makefile by developers, but @@ -37,7 +37,7 @@ SHELL = /bin/sh # These define the major/minor/patch versions of ncurses. NCURSES_MAJOR = 6 NCURSES_MINOR = 1 -NCURSES_PATCH = 20180407 +NCURSES_PATCH = 20180414 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) diff --git a/form/form.h b/form/form.h index f11807f5..1d4c241d 100644 --- a/form/form.h +++ b/form/form.h @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. * + * Copyright (c) 1998-2017,2018 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 * @@ -30,7 +30,7 @@ * Author: Juergen Pfeifer, 1995,1997 * ****************************************************************************/ -/* $Id: form.h,v 0.27 2017/02/11 16:35:42 tom Exp $ */ +/* $Id: form.h,v 0.28 2018/04/14 21:06:21 Leon.Winter Exp $ */ #ifndef FORM_H #define FORM_H @@ -222,6 +222,7 @@ typedef void (*Form_Hook)(FORM *); #define O_STATIC (0x0200U) #define O_DYNAMIC_JUSTIFY (0x0400U) /* ncurses extension */ #define O_NO_LEFT_STRIP (0x0800U) /* ncurses extension */ +#define O_EDGE_INSERT_STAY (0x1000U) /* ncurses extension */ /* form options */ #define O_NL_OVERLOAD (0x0001U) diff --git a/form/form.priv.h b/form/form.priv.h index ad25ec2d..e48a9f26 100644 --- a/form/form.priv.h +++ b/form/form.priv.h @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. * + * Copyright (c) 1998-2017,2018 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 * @@ -30,7 +30,7 @@ * Author: Juergen Pfeifer, 1995,1997 * ****************************************************************************/ -/* $Id: form.priv.h,v 0.42 2017/02/11 16:12:19 tom Exp $ */ +/* $Id: form.priv.h,v 0.43 2018/04/14 21:06:14 Leon.Winter Exp $ */ #ifndef FORM_PRIV_H #define FORM_PRIV_H 1 @@ -166,7 +166,8 @@ TypeArgument; #define ALL_FIELD_OPTS (Field_Options)( \ STD_FIELD_OPTS |\ O_DYNAMIC_JUSTIFY |\ - O_NO_LEFT_STRIP) + O_NO_LEFT_STRIP |\ + O_EDGE_INSERT_STAY) #define C_BLANK ' ' #define is_blank(c) ((c)==C_BLANK) diff --git a/form/frm_driver.c b/form/frm_driver.c index 837b02a1..3e1ccd64 100644 --- a/form/frm_driver.c +++ b/form/frm_driver.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. * + * Copyright (c) 1998-2017,2018 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 * @@ -32,7 +32,7 @@ #include "form.priv.h" -MODULE_ID("$Id: frm_driver.c,v 1.123 2017/09/09 22:35:49 tom Exp $") +MODULE_ID("$Id: frm_driver.c,v 1.125 2018/04/14 21:18:03 Leon.Winter Exp $") /*---------------------------------------------------------------------------- This is the core module of the form library. It contains the majority @@ -830,6 +830,7 @@ _nc_Position_Form_Cursor(FORM *form) { FIELD *field; WINDOW *formwin; + int row, col; if (!form) return (E_BAD_ARGUMENT); @@ -840,14 +841,17 @@ _nc_Position_Form_Cursor(FORM *form) field = form->current; formwin = Get_Form_Window(form); - wmove(form->w, form->currow, form->curcol); + col = Field_Has_Option(field, O_PUBLIC) ? form->curcol : form->begincol; + row = Field_Has_Option(field, O_PUBLIC) ? form->currow : form->toprow; + + wmove(form->w, row, col); if (Has_Invisible_Parts(field)) { /* in this case fieldwin isn't derived from formwin, so we have to move the cursor in formwin by hand... */ wmove(formwin, - field->frow + form->currow - form->toprow, - field->fcol + form->curcol - form->begincol); + field->frow + row - form->toprow, + field->fcol + col - form->begincol); wcursyncup(formwin); } else @@ -866,6 +870,7 @@ _nc_Position_Form_Cursor(FORM *form) | E_BAD_ARGUMENT - invalid form pointer | E_SYSTEM_ERROR - general error +--------------------------------------------------------------------------*/ +static bool move_after_insert = true; NCURSES_EXPORT(int) _nc_Refresh_Current_Field(FORM *form) { @@ -897,7 +902,8 @@ _nc_Refresh_Current_Field(FORM *form) else { if (form->curcol >= (form->begincol + field->cols)) - form->begincol = form->curcol - field->cols + 1; + form->begincol = form->curcol - field->cols + + (move_after_insert ? 1 : 0); } copywin(form->w, formwin, @@ -4184,6 +4190,12 @@ Data_Entry(FORM *form, int c) bool End_Of_Field = (((field->drows - 1) == form->currow) && ((field->dcols - 1) == form->curcol)); + if (Field_Has_Option(field, O_EDGE_INSERT_STAY)) + move_after_insert = !!(form->curcol + - form->begincol + - field->cols + + 1); + SetStatus(form, _WINDOW_MODIFIED); if (End_Of_Field && !Growable(field) && (Field_Has_Option(field, O_AUTOSKIP))) result = Inter_Field_Navigation(FN_Next_Field, form); @@ -4348,6 +4360,8 @@ form_driver(FORM *form, int c) const Binding_Info *BI = (Binding_Info *) 0; int res = E_UNKNOWN_COMMAND; + move_after_insert = true; + T((T_CALLED("form_driver(%p,%d)"), (void *)form, c)); if (!form) diff --git a/ncurses/curses.priv.h b/ncurses/curses.priv.h index 46430e8a..0186578d 100644 --- a/ncurses/curses.priv.h +++ b/ncurses/curses.priv.h @@ -34,7 +34,7 @@ ****************************************************************************/ /* - * $Id: curses.priv.h,v 1.599 2018/04/07 21:47:46 tom Exp $ + * $Id: curses.priv.h,v 1.600 2018/04/14 19:28:44 tom Exp $ * * curses.priv.h * @@ -2209,11 +2209,9 @@ extern NCURSES_EXPORT(const TERMTYPE2 *) _nc_fallback2 (const char *); #if NCURSES_EXT_NUMBERS extern NCURSES_EXPORT(void) _nc_copy_termtype2 (TERMTYPE2 *, const TERMTYPE2 *); extern NCURSES_EXPORT(void) _nc_export_termtype2(TERMTYPE *, const TERMTYPE2 *); -extern NCURSES_EXPORT(void) _nc_import_termtype2(TERMTYPE2 *, const TERMTYPE *); #else #define _nc_copy_termtype2(dst,src) _nc_copy_termtype((dst),(src)) #define _nc_export_termtype2(dst,src) /* nothing */ -#define _nc_import_termtype2(dst,src) /* nothing */ #define _nc_free_termtype2(t) _nc_free_termtype(t) /* also... */ #define _nc_read_entry2 _nc_read_entry diff --git a/ncurses/llib-lncursestw b/ncurses/llib-lncursestw index 8088e8b7..6800e607 100644 --- a/ncurses/llib-lncursestw +++ b/ncurses/llib-lncursestw @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2009-2016,2017 Free Software Foundation, Inc. * + * Copyright (c) 2009-2017,2018 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 * @@ -34,6 +34,7 @@ /* ./tty/hardscroll.c */ #include + #undef _nc_oldnums int *_nc_oldnums; @@ -3769,12 +3770,6 @@ void _nc_export_termtype2( const TERMTYPE2 *src) { /* void */ } -#undef _nc_import_termtype2 -void _nc_import_termtype2( - TERMTYPE2 *dst, - const TERMTYPE *src) - { /* void */ } - /* ./codes.c */ #undef _nc_boolcodes diff --git a/ncurses/llib-lncursesw b/ncurses/llib-lncursesw index 10f608de..7d0dc1ba 100644 --- a/ncurses/llib-lncursesw +++ b/ncurses/llib-lncursesw @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2001-2016,2017 Free Software Foundation, Inc. * + * Copyright (c) 2001-2017,2018 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 * @@ -3760,12 +3760,6 @@ void _nc_export_termtype2( const TERMTYPE2 *src) { /* void */ } -#undef _nc_import_termtype2 -void _nc_import_termtype2( - TERMTYPE2 *dst, - const TERMTYPE *src) - { /* void */ } - /* ./codes.c */ #undef boolcodes diff --git a/ncurses/llib-ltinfotw b/ncurses/llib-ltinfotw index 83b025d2..0ce438d0 100644 --- a/ncurses/llib-ltinfotw +++ b/ncurses/llib-ltinfotw @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2012-2016,2017 Free Software Foundation, Inc. * + * Copyright (c) 2012-2017,2018 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 * @@ -110,12 +110,6 @@ void _nc_export_termtype2( const TERMTYPE2 *src) { /* void */ } -#undef _nc_import_termtype2 -void _nc_import_termtype2( - TERMTYPE2 *dst, - const TERMTYPE *src) - { /* void */ } - /* ./codes.c */ #undef _nc_boolcodes diff --git a/ncurses/llib-ltinfow b/ncurses/llib-ltinfow index 5b8411c2..9ab9de0b 100644 --- a/ncurses/llib-ltinfow +++ b/ncurses/llib-ltinfow @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2012-2016,2017 Free Software Foundation, Inc. * + * Copyright (c) 2012-2017,2018 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 * @@ -110,12 +110,6 @@ void _nc_export_termtype2( const TERMTYPE2 *src) { /* void */ } -#undef _nc_import_termtype2 -void _nc_import_termtype2( - TERMTYPE2 *dst, - const TERMTYPE *src) - { /* void */ } - /* ./codes.c */ #undef boolcodes diff --git a/ncurses/tinfo/alloc_entry.c b/ncurses/tinfo/alloc_entry.c index 09374d6e..fe7892f4 100644 --- a/ncurses/tinfo/alloc_entry.c +++ b/ncurses/tinfo/alloc_entry.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2013,2017 Free Software Foundation, Inc. * + * Copyright (c) 1998-2017,2018 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 * @@ -47,7 +47,7 @@ #include -MODULE_ID("$Id: alloc_entry.c,v 1.61 2017/08/25 09:09:08 tom Exp $") +MODULE_ID("$Id: alloc_entry.c,v 1.62 2018/04/14 20:32:09 tom Exp $") #define ABSENT_OFFSET -1 #define CANCELLED_OFFSET -2 @@ -229,6 +229,9 @@ _nc_merge_entry(ENTRY * const target, ENTRY * const source) TERMTYPE2 *from = &(source->tterm); unsigned i; + if (source == 0 || from == 0 || target == 0 || to == 0) + return; + #if NCURSES_XNAMES _nc_align_termtype(to, from); #endif diff --git a/ncurses/tinfo/alloc_ttype.c b/ncurses/tinfo/alloc_ttype.c index 4a1b6913..6e830d0f 100644 --- a/ncurses/tinfo/alloc_ttype.c +++ b/ncurses/tinfo/alloc_ttype.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1999-2016,2017 Free Software Foundation, Inc. * + * Copyright (c) 1999-2017,2018 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 * @@ -42,7 +42,7 @@ #include -MODULE_ID("$Id: alloc_ttype.c,v 1.29 2017/04/09 23:15:34 tom Exp $") +MODULE_ID("$Id: alloc_ttype.c,v 1.30 2018/04/14 19:24:54 tom Exp $") #if NCURSES_XNAMES /* @@ -388,12 +388,16 @@ adjust_cancels(TERMTYPE2 *to, TERMTYPE2 *from) NCURSES_EXPORT(void) _nc_align_termtype(TERMTYPE2 *to, TERMTYPE2 *from) { - int na = (int) NUM_EXT_NAMES(to); - int nb = (int) NUM_EXT_NAMES(from); + int na; + int nb; char **ext_Names; - DEBUG(2, ("align_termtype to(%d:%s), from(%d:%s)", na, to->term_names, - nb, from->term_names)); + 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)", + na, to ? NonNull(to->term_names) : "?", + nb, from ? NonNull(from->term_names) : "?")); if (na != 0 || nb != 0) { int ext_Booleans, ext_Numbers, ext_Strings; @@ -592,12 +596,4 @@ _nc_export_termtype2(TERMTYPE *dst, const TERMTYPE2 *src) DEBUG(2, ("_nc_export_termtype2...")); copy_termtype((TERMTYPE2 *) dst, src, srcINT); } - -/* FIXME - this will go away when conversion is complete */ -NCURSES_EXPORT(void) -_nc_import_termtype2(TERMTYPE2 *dst, const TERMTYPE *src) -{ - DEBUG(2, ("_nc_import_termtype2...")); - copy_termtype(dst, (const TERMTYPE2 *) src, dstINT); -} #endif /* NCURSES_EXT_NUMBERS */ diff --git a/ncurses/tinfo/comp_parse.c b/ncurses/tinfo/comp_parse.c index 6aa0e039..b97332eb 100644 --- a/ncurses/tinfo/comp_parse.c +++ b/ncurses/tinfo/comp_parse.c @@ -47,7 +47,7 @@ #include -MODULE_ID("$Id: comp_parse.c,v 1.101 2018/02/24 22:33:40 tom Exp $") +MODULE_ID("$Id: comp_parse.c,v 1.105 2018/04/14 20:33:44 tom Exp $") static void sanity_check2(TERMTYPE2 *, bool); NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE2 *, bool) = sanity_check2; @@ -271,9 +271,13 @@ find_capname(TERMTYPE2 *p, const char *name) { unsigned num_names = NUM_EXT_NAMES(p); unsigned n; - for (n = 0; n < num_names; ++n) { - if (!strcmp(p->ext_Names[n], name)) - break; + if (name != 0) { + for (n = 0; n < num_names; ++n) { + if (!strcmp(p->ext_Names[n], name)) + break; + } + } else { + n = num_names + 1; } return n; } @@ -320,6 +324,11 @@ name_of_captype(int which) return result; } +#define valid_TERMTYPE2(p) \ + ((p) != 0 && \ + (p)->term_names != 0 && \ + (p)->ext_Names != 0) + /* * Disallow changing the type of an extended capability when doing a "use" * if one or the other is a string. @@ -328,42 +337,45 @@ static int invalid_merge(TERMTYPE2 *to, TERMTYPE2 *from) { int rc = FALSE; - char *to_name = _nc_first_name(to->term_names); - char *from_name = strdup(_nc_first_name(from->term_names)); - unsigned num_names = NUM_EXT_NAMES(from); - unsigned n; - - for (n = 0; n < num_names; ++n) { - const char *capname = from->ext_Names[n]; - int tt = extended_captype(to, find_capname(to, capname)); - int tf = extended_captype(from, n); - - if (tt <= STRING - && 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))); - } 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))); + if (valid_TERMTYPE2(to) + && valid_TERMTYPE2(from)) { + char *to_name = _nc_first_name(to->term_names); + char *from_name = strdup(_nc_first_name(from->term_names)); + unsigned num_names = NUM_EXT_NAMES(from); + unsigned n; + + for (n = 0; n < num_names; ++n) { + const char *capname = from->ext_Names[n]; + int tt = extended_captype(to, find_capname(to, capname)); + int tf = extended_captype(from, n); + + if (tt <= STRING + && 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))); + } 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 changes type of %s from %s to %s", + from->ext_Names[n], + name_of_captype(tf), + name_of_captype(tt)); + rc = TRUE; } - _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; } + free(from_name); } - free(from_name); return rc; } #define validate_merge(p, q) \ @@ -425,6 +437,9 @@ _nc_resolve_uses2(bool fullresolve, bool literal) char *lookfor = qp->uses[i].name; long lookline = qp->uses[i].line; + if (lookfor == 0) + continue; + foundit = FALSE; _nc_set_type(child); @@ -502,7 +517,8 @@ _nc_resolve_uses2(bool fullresolve, bool literal) * subsequent pass. */ for (i = 0; i < qp->nuses; i++) - if (qp->uses[i].link->nuses) { + 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; diff --git a/ncurses/tinfo/parse_entry.c b/ncurses/tinfo/parse_entry.c index 2b54f45d..437f1223 100644 --- a/ncurses/tinfo/parse_entry.c +++ b/ncurses/tinfo/parse_entry.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. * + * Copyright (c) 1998-2017,2018 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 * @@ -47,7 +47,7 @@ #include #include -MODULE_ID("$Id: parse_entry.c,v 1.92 2017/08/26 19:49:50 tom Exp $") +MODULE_ID("$Id: parse_entry.c,v 1.93 2018/04/14 17:41:12 tom Exp $") #ifdef LINT static short const parametrized[] = @@ -493,7 +493,7 @@ _nc_parse_entry(ENTRY * entryp, int literal, bool silent) entryp->tterm.Numbers[entry_ptr->nte_index] = MAX_NUMBER; } else { entryp->tterm.Numbers[entry_ptr->nte_index] = - (NCURSES_INT2) _nc_curr_token.tk_valnumber; + (NCURSES_INT2) _nc_curr_token.tk_valnumber; } break; @@ -543,9 +543,11 @@ _nc_parse_entry(ENTRY * entryp, int literal, bool silent) * Otherwise, look for a base entry that will already * have picked up defaults via translation. */ - for (i = 0; i < entryp->nuses; i++) - if (!strchr((char *) entryp->uses[i].name, '+')) + for (i = 0; i < entryp->nuses; i++) { + if (entryp->uses[i].name != 0 + && !strchr(entryp->uses[i].name, '+')) has_base_entry = TRUE; + } } postprocess_termcap(&entryp->tterm, has_base_entry); diff --git a/ncurses/tinfo/read_entry.c b/ncurses/tinfo/read_entry.c index 44811512..e56c5a1f 100644 --- a/ncurses/tinfo/read_entry.c +++ b/ncurses/tinfo/read_entry.c @@ -41,7 +41,7 @@ #include -MODULE_ID("$Id: read_entry.c,v 1.147 2018/04/01 01:32:39 tom Exp $") +MODULE_ID("$Id: read_entry.c,v 1.148 2018/04/14 17:43:37 tom Exp $") #define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts)) @@ -837,6 +837,9 @@ _nc_read_entry2(const char *const name, char *const filename, TERMTYPE2 *const t { int code = TGETENT_NO; + if (name == 0) + return _nc_read_entry2("", filename, tp); + _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX) "%.*s", PATH_MAX - 1, name); diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog index 8a9f376c..6aeabb20 100644 --- a/package/debian-mingw/changelog +++ b/package/debian-mingw/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.1+20180407) unstable; urgency=low +ncurses6 (6.1+20180414) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 07 Apr 2018 09:38:08 -0400 + -- Thomas E. Dickey Sat, 14 Apr 2018 12:58:18 -0400 ncurses6 (5.9-20131005) unstable; urgency=low diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog index 8a9f376c..6aeabb20 100644 --- a/package/debian-mingw64/changelog +++ b/package/debian-mingw64/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.1+20180407) unstable; urgency=low +ncurses6 (6.1+20180414) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 07 Apr 2018 09:38:08 -0400 + -- Thomas E. Dickey Sat, 14 Apr 2018 12:58:18 -0400 ncurses6 (5.9-20131005) unstable; urgency=low diff --git a/package/debian/changelog b/package/debian/changelog index 754b5d1f..839b40fc 100644 --- a/package/debian/changelog +++ b/package/debian/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.1+20180407) unstable; urgency=low +ncurses6 (6.1+20180414) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 07 Apr 2018 09:38:08 -0400 + -- Thomas E. Dickey Sat, 14 Apr 2018 12:58:18 -0400 ncurses6 (5.9-20120608) unstable; urgency=low diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi index 2fd8e42c..b049bc96 100644 --- a/package/mingw-ncurses.nsi +++ b/package/mingw-ncurses.nsi @@ -1,4 +1,4 @@ -; $Id: mingw-ncurses.nsi,v 1.265 2018/04/07 13:38:08 tom Exp $ +; $Id: mingw-ncurses.nsi,v 1.266 2018/04/14 16:58:18 tom Exp $ ; TODO add examples ; TODO bump ABI to 6 @@ -10,7 +10,7 @@ !define VERSION_MAJOR "6" !define VERSION_MINOR "1" !define VERSION_YYYY "2018" -!define VERSION_MMDD "0407" +!define VERSION_MMDD "0414" !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} !define MY_ABI "5" diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec index eb534f49..9a5ba082 100644 --- a/package/mingw-ncurses.spec +++ b/package/mingw-ncurses.spec @@ -3,7 +3,7 @@ Summary: shared libraries for terminal handling Name: mingw32-ncurses6 Version: 6.1 -Release: 20180407 +Release: 20180414 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz diff --git a/package/ncurses.spec b/package/ncurses.spec index 34175e41..3a75edcc 100644 --- a/package/ncurses.spec +++ b/package/ncurses.spec @@ -1,7 +1,7 @@ Summary: shared libraries for terminal handling Name: ncurses6 Version: 6.1 -Release: 20180407 +Release: 20180414 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz