ncurses 6.1 - patch 20180303
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 4 Mar 2018 02:17:44 +0000 (02:17 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 4 Mar 2018 02:17:44 +0000 (02:17 +0000)
+ modify TurnOn/TurnOff macros in lib_vidattr.c and lib_vid_attr.c to
  avoid expansion of "CUR" in trace.
+ improve a few lintian warnings in test-packages.
+ modify lib_setup to avoid calling pthread_self() without first
  verifying that the address is valid, i.e., for weak symbols
  (report/patch by Werner Fink).
+ modify generated terminfo.5 to not use "expand" and related width
  on the last column of tables, making layout on wide terminals look
  better (adapted from patch by Kir Kolyshkin).
+ add a category to report_offsets, 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.
+ simplify some ifdef's for extended-colors.
+ add NCURSES_GLOBALS and NCURSES_PRESCREEN to report_offsets, to show
  how similar the different tinfo configurations are.

28 files changed:
MANIFEST
NEWS
VERSION
dist.mk
man/MKterminfo.sh
ncurses/Makefile.in
ncurses/base/lib_color.c
ncurses/base/lib_freeall.c
ncurses/base/lib_slkcolor.c
ncurses/base/new_pair.c
ncurses/curses.priv.h
ncurses/new_pair.h
ncurses/report_offsets.c
ncurses/tinfo/lib_data.c
ncurses/tinfo/lib_setup.c
ncurses/tty/lib_mvcur.c
ncurses/tty/lib_vidattr.c
ncurses/widechar/lib_vid_attr.c
package/debian-mingw/changelog
package/debian-mingw64/changelog
package/debian/changelog
package/debian/ncurses6.lintian-overrides
package/debian/ncurses6.triggers [new file with mode: 0644]
package/debian/ncursest6.lintian-overrides
package/debian/ncursest6.triggers [new file with mode: 0644]
package/mingw-ncurses.nsi
package/mingw-ncurses.spec
package/ncurses.spec

index cfa2e748708a7c322ad84e6b9c5df2f2a0059912..b4d978cc9dac7a3213192b4f54fd9942a65d8065 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
 ./package/debian/control
 ./package/debian/copyright
 ./package/debian/ncurses6.lintian-overrides
+./package/debian/ncurses6.triggers
 ./package/debian/ncursest6.lintian-overrides
+./package/debian/ncursest6.triggers
 ./package/debian/rules
 ./package/debian/source/format
 ./package/debian/watch
diff --git a/NEWS b/NEWS
index 9801462d0be886d5fdb68b5d315d2ac37a150cf2..d714ecc032c3ce45ba5f2e10b7883355bbb35700 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3089 2018/02/24 22:39:32 tom Exp $
+-- $Id: NEWS,v 1.3096 2018/03/03 22:07:39 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -45,6 +45,23 @@ 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.
 
+20180303
+       + modify TurnOn/TurnOff macros in lib_vidattr.c and lib_vid_attr.c to
+         avoid expansion of "CUR" in trace.
+       + improve a few lintian warnings in test-packages.
+       + modify lib_setup to avoid calling pthread_self() without first
+         verifying that the address is valid, i.e., for weak symbols
+         (report/patch by Werner Fink).
+       + modify generated terminfo.5 to not use "expand" and related width
+         on the last column of tables, making layout on wide terminals look
+         better (adapted from patch by Kir Kolyshkin).
+       + add a category to report_offsets, 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.
+       + simplify some ifdef's for extended-colors.
+       + add NCURSES_GLOBALS and NCURSES_PRESCREEN to report_offsets, to show
+         how similar the different tinfo configurations are.
+
 20180224
        + modify _nc_resolve_uses2() to detect incompatible types when merging
          a "use=" clause of extended capabilities.  The problem was seen in a
diff --git a/VERSION b/VERSION
index 432d3a25d1ceba36451e01ecc32fe9e6c951074e..8ef25560c6143818d6405f8164161c97073fde16 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5:0:10 6.1     20180224
+5:0:10 6.1     20180303
diff --git a/dist.mk b/dist.mk
index 3d224765dd73506aa352860be3b1351cc0bdc085..ea719189820cc58fb860711b14c226473006f4a6 100644 (file)
--- 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.1212 2018/02/18 15:53:22 tom Exp $
+# $Id: dist.mk,v 1.1213 2018/02/26 23:33:42 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 = 20180224
+NCURSES_PATCH = 20180303
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
index 1489e9ccccf87f2074e953e38c23b2af2f9649bd..1b6f89452f0266c80f222dbfdf87d2d2ba5e16e7 100755 (executable)
@@ -1,10 +1,10 @@
 #!/bin/sh
-# $Id: MKterminfo.sh,v 1.13 2017/08/12 12:22:06 tom Exp $
+# $Id: MKterminfo.sh,v 1.15 2018/03/03 19:25:58 tom Exp $
 #
 # MKterminfo.sh -- generate terminfo.5 from Caps tabular data
 #
 #***************************************************************************
-# Copyright (c) 1998-2003,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            *
@@ -65,10 +65,13 @@ cat $head
 temp=temp$$
 sorted=sorted$$
 unsorted=unsorted$$
-trap "rm -f $sorted $temp $unsorted; exit 99" 1 2 3 15
+trap "code=\$?; rm -f $sorted $temp $unsorted; exit \$code" EXIT HUP INT QUIT TERM
+rm -f $sorted $temp $unsorted
 
 sed -n <$caps "\
 /%%-STOP-HERE-%%/q
+/^#%center/s, expand,,
+/^#%lw[1-9]/s, lw[1-9][0-9]*\., l.,
 /^#%/s/#%//p
 /^#/d
 s/[    ][      ]*/     /g
@@ -105,6 +108,7 @@ done <$unsorted
 test $saved = yes && sort $temp >>$sorted
 
 sed -e 's/^\.\.$//' $sorted | tr "\005\006" "\012\134"
-cat $tail
 
-rm -f $sorted $temp $unsorted
+sed    -e '/^center expand;/s, expand,,' \
+       -e '/^\.TS/,/^\\/s, lw[1-9][0-9]*\., l.,' \
+       $tail
index d2fd5c5e084891a23ff13a883b6cfd5f25d11084..be9cb1991d0a2e3229b75bc1771fb04ad448f29d 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.155 2018/01/15 19:28:45 tom Exp $
+# $Id: Makefile.in,v 1.156 2018/03/01 17:37:19 tom Exp $
 ##############################################################################
 # Copyright (c) 1998-2017,2018 Free Software Foundation, Inc.                #
 #                                                                            #
@@ -241,6 +241,7 @@ make_hash$(BUILD_EXEEXT) : \
        $(BUILD_CC) -o $@ $(BUILD_CPPFLAGS) $(BUILD_CCFLAGS) $(tinfo)/make_hash.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
 
 report_offsets$(BUILD_EXEEXT) : \
+               $(srcdir)/curses.priv.h \
                $(srcdir)/report_offsets.c
        $(BUILD_CC) -o $@ $(BUILD_CPPFLAGS) $(BUILD_CCFLAGS) $(srcdir)/report_offsets.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
        ./report_offsets$(BUILD_EXEEXT)
index 8871159fae8bda90cfc9ee6968c8ac8ac0c8f936..41496eed612994b62c85a2d766ed4741b9f46af3 100644 (file)
@@ -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            *
@@ -48,7 +48,7 @@
 #define CUR SP_TERMTYPE
 #endif
 
-MODULE_ID("$Id: lib_color.c,v 1.136 2017/10/22 15:19:37 tom Exp $")
+MODULE_ID("$Id: lib_color.c,v 1.137 2018/03/01 15:02:12 tom Exp $")
 
 #ifdef USE_TERM_DRIVER
 #define CanChange      InfoOf(SP_PARM).canchange
@@ -534,7 +534,7 @@ _nc_reserve_pairs(SCREEN *sp, int want)
        if (sp->_color_pairs == 0) {
            sp->_color_pairs = TYPE_CALLOC(colorpair_t, have);
        } else if (have > sp->_pair_alloc) {
-#if USE_NEW_PAIR
+#if NCURSES_EXT_COLORS
            colorpair_t *next;
 
            if ((next = typeCalloc(colorpair_t, have)) == 0)
@@ -1082,7 +1082,7 @@ _nc_do_color(int old_pair, int pair, int reverse, NCURSES_OUTC outc)
 }
 #endif
 
-#if USE_EXTENDED_COLORS
+#if NCURSES_EXT_COLORS
 NCURSES_EXPORT(int)
 NCURSES_SP_NAME(init_extended_pair) (NCURSES_SP_DCLx int pair, int f, int b)
 {
@@ -1164,4 +1164,4 @@ reset_color_pairs(void)
     NCURSES_SP_NAME(reset_color_pairs) (CURRENT_SCREEN);
 }
 #endif /* NCURSES_SP_FUNCS */
-#endif /* USE_EXTENDED_COLORS */
+#endif /* NCURSES_EXT_COLORS */
index 9c9317508eb6c1ac217c1d40df5fa04540433c77..75c3ec3ea6215566312de88ceca6720ab00bc155 100644 (file)
@@ -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            *
@@ -39,7 +39,7 @@
 extern int malloc_errfd;       /* FIXME */
 #endif
 
-MODULE_ID("$Id: lib_freeall.c,v 1.68 2017/08/04 09:01:46 tom Exp $")
+MODULE_ID("$Id: lib_freeall.c,v 1.69 2018/03/01 15:02:12 tom Exp $")
 
 /*
  * Free all ncurses data.  This is used for testing only (there's no practical
@@ -60,7 +60,7 @@ NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_DCL0)
        if (SP_PARM->_panelHook.destroy != 0) {
            SP_PARM->_panelHook.destroy(SP_PARM->_panelHook.stdscr_pseudo_panel);
        }
-#if USE_NEW_PAIR
+#if NCURSES_EXT_COLORS
        _nc_new_pair_leaks(SP_PARM);
 #endif
     }
index 420279291ecc8585741a53ed92f3dd56b31a0d5b..7edbe1afcc9381bd1b6564fdaef38ddec8fb4bdc 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2014,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            *
@@ -38,7 +38,7 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkcolor.c,v 1.18 2017/03/17 09:26:46 tom Exp $")
+MODULE_ID("$Id: lib_slkcolor.c,v 1.19 2018/03/01 15:02:12 tom Exp $")
 
 static int
 _nc_slk_color(SCREEN *sp, int pair_arg)
@@ -73,7 +73,7 @@ slk_color(NCURSES_PAIRS_T pair_arg)
 }
 #endif
 
-#if USE_EXTENDED_COLORS
+#if NCURSES_EXT_COLORS
 NCURSES_EXPORT(int)
 NCURSES_SP_NAME(extended_slk_color) (NCURSES_SP_DCLx int pair_arg)
 {
index f13d16f4575421c1cac5c9345b8c6ab06dfc257c..bbccc19efa7953f3b1b4101c8e3452a512c54670 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2017 Free Software Foundation, Inc.                        *
+ * Copyright (c) 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            *
@@ -48,7 +48,7 @@
 #define MaxColors      max_colors
 #endif
 
-#if USE_NEW_PAIR
+#if NCURSES_EXT_COLORS
 
 /* fix redefinition versys tic.h */
 #undef entry
@@ -60,9 +60,9 @@
 
 #endif
 
-MODULE_ID("$Id: new_pair.c,v 1.14 2017/08/11 18:20:22 tom Exp $")
+MODULE_ID("$Id: new_pair.c,v 1.15 2018/03/01 15:02:12 tom Exp $")
 
-#if USE_NEW_PAIR
+#if NCURSES_EXT_COLORS
 
 #ifdef NEW_PAIR_DEBUG
 
@@ -376,4 +376,4 @@ void
 _nc_new_pair(void)
 {
 }
-#endif /* USE_NEW_PAIR */
+#endif /* NCURSES_EXT_COLORS */
index 18dc01d6bf698ed6a8a2a4cbfc4d0d1804ed955a..fdc8c4a99a03c31f0cc86444d60cefd6393adefc 100644 (file)
@@ -34,7 +34,7 @@
  ****************************************************************************/
 
 /*
- * $Id: curses.priv.h,v 1.588 2018/02/10 16:13:31 tom Exp $
+ * $Id: curses.priv.h,v 1.597 2018/03/04 01:06:04 tom Exp $
  *
  *     curses.priv.h
  *
@@ -598,6 +598,9 @@ weak_symbol(pthread_mutexattr_init);
 extern NCURSES_EXPORT(int) _nc_sigprocmask(int, const sigset_t *, sigset_t *);
 #    undef  sigprocmask
 #    define sigprocmask(a, b, c) _nc_sigprocmask(a, b, c)
+#    define GetThreadID() (((pthread_self)) ? pthread_self() : (pthread_t) getpid())
+#  else
+#    define GetThreadID() pthread_self()
 #  endif
 #endif
 
@@ -676,11 +679,6 @@ extern NCURSES_EXPORT(int) _nc_sigprocmask(int, const sigset_t *, sigset_t *);
 
 #include <new_pair.h>
 
-/*
- * As an extension, support color values and color pairs past 2^16.
- */
-#define USE_EXTENDED_COLORS    USE_NEW_PAIR
-
 #define isDefaultColor(c)      ((c) < 0)
 #define COLOR_DEFAULT          -1
 
@@ -832,9 +830,6 @@ typedef struct {
 #define NUM_VARS 26
 
 typedef struct {
-#ifdef TRACE
-       const char      *tname;
-#endif
        const char      *tparam_base;
 
        STACK_FRAME     stack[STACKSIZE];
@@ -849,6 +844,9 @@ typedef struct {
 
        int             dynamic_var[NUM_VARS];
        int             static_vars[NUM_VARS];
+#ifdef TRACE
+       const char      *tname;
+#endif
 } TPARM_STATE;
 
 typedef struct {
@@ -931,6 +929,10 @@ typedef struct {
        time_t          dbd_time;       /* cache last updated */
        ITERATOR_VARS   dbd_vars[dbdLAST];
 
+#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
@@ -945,8 +947,22 @@ typedef struct {
        int             safeprint_rows;
 #endif
 
-#ifdef USE_TERM_DRIVER
-       int             (*term_driver)(struct DriverTCB*, const char*, int*);
+#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
@@ -977,27 +993,10 @@ typedef struct {
        int             nested_tracef;
 #endif
 #endif /* TRACE */
+
 #if NO_LEAKS
        bool            leak_checking;
 #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
-#endif
-#if USE_PTHREADS_EINTR
-       pthread_t       read_thread;            /* The reading thread */
-#endif
-#if USE_WIDEC_SUPPORT
-       char            key_name[MB_LEN_MAX + 1];
-#endif
 } NCURSES_GLOBALS;
 
 extern NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals;
@@ -1025,16 +1024,17 @@ typedef struct {
        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
-       TPARM_STATE     tparm_state;
-       TTY             *saved_tty;     /* savetty/resetty information      */
 #if NCURSES_NO_PADDING
        bool            _no_padding;    /* flag to set if padding disabled  */
 #endif
-       NCURSES_SP_OUTC _outch;         /* output handler if not putc */
 #if BROKEN_LINKER || USE_REENTRANT
        chtype          *real_acs_map;
        int             _LINES;
@@ -1042,12 +1042,13 @@ typedef struct {
        int             _TABSIZE;
        int             _ESCDELAY;
        TERMINAL        *_cur_term;
+#endif
 #ifdef TRACE
+#if BROKEN_LINKER || USE_REENTRANT
        long            _outchars;
        const char      *_tputs_trace;
 #endif
 #endif
-       bool            use_tioctl;
 } NCURSES_PRESCREEN;
 
 /*
@@ -1129,18 +1130,11 @@ struct screen {
        struct _SLK     *_slk;          /* ptr to soft key struct / NULL    */
        int             slk_format;     /* selected format for this screen  */
        /* cursor movement costs; units are 10ths of milliseconds */
-#if NCURSES_NO_PADDING
-       bool            _no_padding;    /* flag to set if padding disabled  */
-#endif
        int             _char_padding;  /* cost of character put            */
        int             _cr_cost;       /* cost of (carriage_return)        */
        int             _cup_cost;      /* cost of (cursor_address)         */
        int             _home_cost;     /* cost of (cursor_home)            */
        int             _ll_cost;       /* cost of (cursor_to_ll)           */
-#if USE_HARD_TABS
-       int             _ht_cost;       /* cost of (tab)                    */
-       int             _cbt_cost;      /* cost of (backtab)                */
-#endif /* USE_HARD_TABS */
        int             _cub1_cost;     /* cost of (cursor_left)            */
        int             _cuf1_cost;     /* cost of (cursor_right)           */
        int             _cud1_cost;     /* cost of (cursor_down)            */
@@ -1181,14 +1175,6 @@ struct screen {
        int             _pair_count;    /* same as COLOR_PAIRS               */
        int             _pair_limit;    /* actual limit of color-pairs       */
        int             _pair_alloc;    /* current table-size of color-pairs */
-#if NCURSES_EXT_FUNCS
-       bool            _assumed_color; /* use assumed colors                */
-       bool            _default_color; /* use default colors                */
-       bool            _has_sgr_39_49; /* has ECMA default color support    */
-       int             _default_fg;    /* assumed default foreground        */
-       int             _default_bg;    /* assumed default background        */
-       int             _default_pairs; /* count pairs using default color   */
-#endif
        chtype          _ok_attributes; /* valid attributes for terminal     */
        chtype          _xmc_suppress;  /* attributes to suppress if xmc     */
        chtype          _xmc_triggers;  /* attributes to process if xmc      */
@@ -1199,13 +1185,6 @@ struct screen {
        /* used in lib_vidattr.c */
        bool            _use_rmso;      /* true if we may use 'rmso'         */
        bool            _use_rmul;      /* true if we may use 'rmul'         */
-#if USE_ITALIC
-       bool            _use_ritm;      /* true if we may use 'ritm'         */
-#endif
-
-#if USE_KLIBC_KBD
-       bool            _extended_key;  /* true if an extended key           */
-#endif
 
        /*
         * These data correspond to the state of the idcok() and idlok()
@@ -1238,6 +1217,60 @@ struct screen {
        MEVENT          _mouse_events[EV_MAX];  /* hold the last mouse event seen */
        MEVENT          *_mouse_eventp; /* next free slot in event queue */
 
+       /*
+        * These are data that support the proper handling of the panel stack on an
+        * per screen basis.
+        */
+       struct panelhook _panelHook;
+
+       bool            _sig_winch;
+       SCREEN          *_next_screen;
+
+       /* hashes for old and new lines */
+       unsigned long   *oldhash, *newhash;
+       HASHMAP         *hashtab;
+       int             hashtab_len;
+       int             *_oldnum_list;
+       int             _oldnum_size;
+
+       NCURSES_SP_OUTC _outch;         /* output handler if not putc */
+       NCURSES_OUTC    jump;
+
+       ripoff_t        rippedoff[N_RIPS];
+       ripoff_t        *rsp;
+
+       int             _legacy_coding; /* see use_legacy_coding() */
+
+#if NCURSES_NO_PADDING
+       bool            _no_padding;    /* flag to set if padding disabled  */
+#endif
+
+#if USE_HARD_TABS
+       int             _ht_cost;       /* cost of (tab)                    */
+       int             _cbt_cost;      /* cost of (backtab)                */
+#endif /* USE_HARD_TABS */
+
+       /* used in lib_vidattr.c */
+#if USE_ITALIC
+       bool            _use_ritm;      /* true if we may use 'ritm'         */
+#endif
+
+       /* used in getch/twait */
+#if USE_KLIBC_KBD
+       bool            _extended_key;  /* true if an extended key           */
+#endif
+
+       /* used in lib_color.c */
+#if NCURSES_EXT_FUNCS
+       bool            _assumed_color; /* use assumed colors                */
+       bool            _default_color; /* use default colors                */
+       bool            _has_sgr_39_49; /* has ECMA default color support    */
+       int             _default_fg;    /* assumed default foreground        */
+       int             _default_bg;    /* assumed default background        */
+       int             _default_pairs; /* count pairs using default color   */
+#endif
+
+       /* system-dependent mouse data */
 #if USE_GPM_SUPPORT
        bool            _mouse_gpm_loaded;
        bool            _mouse_gpm_found;
@@ -1283,25 +1316,10 @@ struct screen {
        int             (*_ungetch)(SCREEN *, int);
 #endif
 
-       /*
-        * These are data that support the proper handling of the panel stack on an
-        * per screen basis.
-        */
-       struct panelhook _panelHook;
-
-       bool            _sig_winch;
-       SCREEN          *_next_screen;
-
-       /* hashes for old and new lines */
-       unsigned long   *oldhash, *newhash;
-       HASHMAP         *hashtab;
-       int             hashtab_len;
-       int             *_oldnum_list;
-       int             _oldnum_size;
-
-       NCURSES_SP_OUTC _outch;         /* output handler if not putc */
-
-       int             _legacy_coding; /* see use_legacy_coding() */
+#ifdef USE_SP_WINDOWLIST
+       WINDOWLIST*     _windowlist;
+#define WindowList(sp)  (sp)->_windowlist
+#endif
 
 #if USE_REENTRANT
        char            _ttytype[NAMESIZE];
@@ -1309,24 +1327,7 @@ struct screen {
        int             _TABSIZE;
        int             _LINES;
        int             _COLS;
-#ifdef TRACE
-       long            _outchars;
-       const char      *_tputs_trace;
-#endif
-#endif
-
-#ifdef TRACE
-       char            tracechr_buf[40];
-       char            tracemse_buf[TRACEMSE_MAX];
-#endif
-#ifdef USE_SP_WINDOWLIST
-       WINDOWLIST*     _windowlist;
-#define WindowList(sp)  (sp)->_windowlist
 #endif
-       NCURSES_OUTC    jump;
-
-       ripoff_t        rippedoff[N_RIPS];
-       ripoff_t        *rsp;
 
 #if NCURSES_SP_FUNCS
        bool            use_tioctl;
@@ -1342,11 +1343,21 @@ struct screen {
        bool            _screen_acs_fix;
        bool            _screen_unicode;
 #endif
-#if NCURSES_EXT_FUNCS && USE_NEW_PAIR
+
+#if NCURSES_EXT_FUNCS && NCURSES_EXT_COLORS
        void            *_ordered_pairs; /* index used by alloc_pair()       */
        int             _pairs_used;    /* actual number of color-pairs used */
        int             _recent_pair;   /* number for most recent free-pair  */
 #endif
+
+#ifdef TRACE
+       char            tracechr_buf[40];
+       char            tracemse_buf[TRACEMSE_MAX];
+#if USE_REENTRANT
+       long            _outchars;
+       const char      *_tputs_trace;
+#endif
+#endif
 };
 
 extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
@@ -1464,6 +1475,8 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
 #define ChCharOf(c)    ((chtype)(c) & (chtype)A_CHARTEXT)
 #define ChAttrOf(c)    ((chtype)(c) & (chtype)A_ATTRIBUTES)
 
+#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
@@ -1520,6 +1533,7 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
 #define PUTC_INIT      init_mb (PUT_st)
 #define PUTC(ch)       do { if(!isWidecExt(ch)) {                                  \
                        if (Charable(ch)) {                                         \
+                           TR_PUTC(CharOf(ch)); \
                            NCURSES_OUTC_FUNC (NCURSES_SP_ARGx CharOf(ch)); \
                            COUNT_OUTCHARS(1);                                      \
                        } else {                                                    \
@@ -1532,11 +1546,13 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
                                                       (ch).chars[PUTC_i], &PUT_st); \
                                if (PUTC_n <= 0) {                                  \
                                    if (PUTC_ch && is8bits(PUTC_ch) && PUTC_i == 0) \
+                                       TR_PUTC(CharOf(ch)); \
                                        NCURSES_OUTC_FUNC (NCURSES_SP_ARGx CharOf(ch)); \
                                    break;                                          \
                                } else {                                            \
                                    int PUTC_j;                                     \
                                    for (PUTC_j = 0; PUTC_j < PUTC_n; ++PUTC_j) {   \
+                                       TR_PUTC(PUTC_buf[PUTC_j]); \
                                        NCURSES_OUTC_FUNC (NCURSES_SP_ARGx PUTC_buf[PUTC_j]); \
                                    }                                               \
                                }                                                   \
@@ -1584,7 +1600,10 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
 #define ARG_CH_T       NCURSES_CH_T
 #define CARG_CH_T      NCURSES_CH_T
 #define PUTC_DATA      /* nothing */
-#define PUTC(ch)       NCURSES_OUTC_FUNC (NCURSES_SP_ARGx (int) ch)
+#define PUTC(ch)       { \
+                           TR_PUTC(ch); \
+                           NCURSES_OUTC_FUNC (NCURSES_SP_ARGx (int) ch); \
+                       }
 
 #define BLANK          (' '|A_NORMAL)
 #define ZEROS          ('\0'|A_NORMAL)
index 4dbeb9dc0fb949141eaf21e5ad48f975874a60b9..49828d4a7725010d92935841baf5d064383f520e 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2017 Free Software Foundation, Inc.                        *
+ * Copyright (c) 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            *
 /*
  * Common type definitions and macros for new_pair.c, lib_color.c
  *
- * $Id: new_pair.h,v 1.8 2017/08/11 18:15:11 tom Exp $
+ * $Id: new_pair.h,v 1.9 2018/03/01 15:02:12 tom Exp $
  */
 
 #ifndef NEW_PAIR_H
 #define NEW_PAIR_H 1
 /* *INDENT-OFF* */
 
-#define USE_NEW_PAIR NCURSES_EXT_COLORS
-
 #define LIMIT_TYPED(n,t) \
        (t)(((n) > MAX_OF_TYPE(t)) \
            ? MAX_OF_TYPE(t) \
@@ -54,9 +52,8 @@
 
 #define MAX_XCURSES_PAIR MAX_OF_TYPE(NCURSES_PAIRS_T)
 
-#if USE_NEW_PAIR
+#if NCURSES_EXT_COLORS
 #define OPTIONAL_PAIR  GCC_UNUSED
-#define USE_NEW_PAIR NCURSES_EXT_COLORS
 #define get_extended_pair(opts, color_pair) \
        if ((opts) != NULL) { \
            *(int*)(opts) = color_pair; \
@@ -67,7 +64,6 @@
        }
 #else
 #define OPTIONAL_PAIR  /* nothing */
-#define USE_NEW_PAIR NCURSES_EXT_COLORS
 #define get_extended_pair(opts, color_pair) /* nothing */
 #define set_extended_pair(opts, color_pair) \
        if ((opts) != NULL) { \
@@ -88,7 +84,7 @@ typedef struct _color_pairs
 {
     int fg;
     int bg;
-#if USE_NEW_PAIR
+#if NCURSES_EXT_COLORS
     int mode;                  /* tells if the entry is allocated or free */
     int prev;                  /* index of previous item */
     int next;                  /* index of next item */
@@ -108,7 +104,7 @@ colorpair_t;
 #define ValidPair(sp,pair) \
     ((sp != 0) && (pair >= 0) && (pair < sp->_pair_limit) && sp->_coloron)
 
-#if USE_NEW_PAIR
+#if NCURSES_EXT_COLORS
 extern NCURSES_EXPORT(void)     _nc_copy_pairs(SCREEN*, colorpair_t*, colorpair_t*, int);
 extern NCURSES_EXPORT(void)     _nc_free_ordered_pairs(SCREEN*);
 extern NCURSES_EXPORT(void)     _nc_reset_color_pair(SCREEN*, int, colorpair_t*);
index ed39b51e6ab6441826f11f4faa16356b2167a5b7..e3f4ddaa8fb477dfd39ba3418f156c97439e3fc0 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2017 Free Software Foundation, Inc.                        *
+ * Copyright (c) 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            *
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: report_offsets.c,v 1.5 2017/06/03 13:52:28 tom Exp $")
+MODULE_ID("$Id: report_offsets.c,v 1.19 2018/03/01 19:22:27 tom Exp $")
 
 #define show_size(type) \
-       printf("%6ld\t" #type "\n", (long)sizeof(type))
+       flag = 0; \
+       last = 0; \
+       printf("%5lu   " #type "\n", (unsigned long)sizeof(type))
 #define show_offset(type,member) \
-       printf("%6ld\t" #type "." #member "\n", (long)offsetof(type,member))
+       next = (unsigned long)offsetof(type,member); \
+       if (last > next) \
+               printf("?? incorrect order for " #type "." #member "\n"); \
+       printf("%5lu %c " #type "." #member "\n", next, flag ? *flag : ' '); \
+       last = next; \
+       flag = 0
+
+#if NCURSES_WIDECHAR && NCURSES_EXT_COLORS
+#define show_COLORS(type,member) { flag = "c"; show_offset(type,member); }
+#else
+#define show_COLORS(type,member)       /* nothing */
+#endif
+
+#ifdef USE_TERM_DRIVER
+#define show_DRIVER(type,member) { flag = "d"; show_offset(type,member); }
+#else
+#define show_DRIVER(type,member)       /* nothing */
+#endif
+
+#if NO_LEAKS
+#define show_MLEAKS(type,member) { flag = "L"; show_offset(type,member); }
+#else
+#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
+#define show_REENTR(type,member) { flag = "r"; show_offset(type,member); }
+#else
+#define show_REENTR(type,member)       /* nothing */
+#endif
+
+#if NCURSES_SP_FUNCS
+#define show_SPFUNC(type,member) { flag = "s"; show_offset(type,member); }
+#else
+#define show_SPFUNC(type,member)       /* nothing */
+#endif
+
+#ifdef USE_PTHREADS
+#define show_THREAD(type,member) { flag = "t"; show_offset(type,member); }
+#else
+#define show_THREAD(type,member)       /* nothing */
+#endif
+
+#ifdef TRACE
+#define show_TRACES(type,member) { flag = "T"; show_offset(type,member); }
+#else
+#define show_TRACES(type,member)       /* nothing */
+#endif
+
+#if USE_WIDEC_SUPPORT
+#define show_WIDECH(type,member) { flag = "w"; show_offset(type,member); }
+#else
+#define show_WIDECH(type,member)       /* nothing */
+#endif
 
 int
 main(void)
 {
+    const char *flag = 0;
+    unsigned long last, next;
+
     printf("Size/offsets of data structures:\n");
 
     show_size(attr_t);
     show_size(chtype);
-#if NCURSES_WIDECHAR
+#if USE_WIDEC_SUPPORT
     show_size(cchar_t);
 #endif
     show_size(mmask_t);
@@ -55,57 +121,108 @@ main(void)
 
     printf("\n");
     show_size(SCREEN);
+    show_offset(SCREEN, _ifd);
+    show_offset(SCREEN, _fifo);
+    show_offset(SCREEN, _fifohead);
+    show_offset(SCREEN, _direct_color);
     show_offset(SCREEN, _panelHook);
-#if USE_REENTRANT
-    show_offset(SCREEN, _ttytype);
+    show_offset(SCREEN, jump);
+    show_offset(SCREEN, rsp);
+#if NCURSES_NO_PADDING
+    show_OPTION(SCREEN, _no_padding);
 #endif
-#ifdef TRACE
-    show_offset(SCREEN, tracechr_buf);
+#if USE_HARD_TABS
+    show_OPTION(SCREEN, _ht_cost);
 #endif
-#ifdef USE_SP_WINDOWLIST
-    show_offset(SCREEN, _windowlist);
+#if USE_ITALIC
+    show_OPTION(SCREEN, _use_ritm);
+#endif
+#if USE_KLIBC_KBD
+    show_OPTION(SCREEN, _extended_key);
 #endif
-    show_offset(SCREEN, rsp);
 #if NCURSES_EXT_FUNCS
-#if USE_NEW_PAIR
-    show_offset(SCREEN, _ordered_pairs);
+    show_OPTION(SCREEN, _assumed_color);
 #endif
-#if NCURSES_SP_FUNCS
-    show_offset(SCREEN, use_tioctl);
+#if USE_GPM_SUPPORT
+    show_OPTION(SCREEN, _mouse_gpm_loaded);
+#ifdef HAVE_LIBDL
+    show_OPTION(SCREEN, _dlopen_gpm);
 #endif
 #endif
-#if USE_WIDEC_SUPPORT
-    show_offset(SCREEN, _screen_acs_fix);
+#if USE_EMX_MOUSE
+    show_OPTION(SCREEN, _emxmouse_wfd);
+#endif
+#if USE_SYSMOUSE
+    show_OPTION(SCREEN, _sysmouse_fifo);
 #endif
+    show_DRIVER(SCREEN, _drv_mouse_fifo);
+#if USE_SIZECHANGE
+    show_OPTION(SCREEN, _resize);
+#endif
+    show_REENTR(SCREEN, _ttytype);
+    show_DRIVER(SCREEN, _windowlist);
+    show_SPFUNC(SCREEN, use_tioctl);
+    show_WIDECH(SCREEN, _screen_acs_fix);
+    show_COLORS(SCREEN, _ordered_pairs);
+    show_TRACES(SCREEN, tracechr_buf);
 
     printf("\n");
     show_size(TERMINAL);
     show_offset(TERMINAL, type);
     show_offset(TERMINAL, Filedes);
-#if defined(TERMIOS)
     show_offset(TERMINAL, Ottyb);
     show_offset(TERMINAL, Nttyb);
-#endif
     show_offset(TERMINAL, _baudrate);
     show_offset(TERMINAL, _termname);
-#if NCURSES_EXT_COLORS && HAVE_INIT_EXTENDED_COLOR
-    show_offset(TERMINAL, type2);
+#if HAVE_INIT_EXTENDED_COLOR
+    show_COLORS(TERMINAL, type2);
 #endif
 
     printf("\n");
     show_size(TERMTYPE);
 #if NCURSES_XNAMES
-    show_offset(TERMTYPE, ext_str_table);
-    show_offset(TERMTYPE, ext_Strings);
+    show_OPTION(TERMTYPE, ext_str_table);
+    show_OPTION(TERMTYPE, ext_Strings);
 #endif
 
     printf("\n");
     show_size(WINDOW);
-#if NCURSES_WIDECHAR
-    show_offset(WINDOW, _bkgrnd);
-#if NCURSES_EXT_COLORS
-    show_offset(WINDOW, _color);
+    show_WIDECH(WINDOW, _bkgrnd);
+    show_COLORS(WINDOW, _color);
+
+    printf("\n");
+    show_size(NCURSES_GLOBALS);
+    show_offset(NCURSES_GLOBALS, init_signals);
+    show_DRIVER(NCURSES_GLOBALS, term_driver);
+    show_NORMAL(NCURSES_GLOBALS, _nc_windowlist);
+#if USE_HOME_TERMINFO
+    show_OPTION(NCURSES_GLOBALS, home_terminfo);
+#endif
+#if !USE_SAFE_SPRINTF
+    show_OPTION(NCURSES_GLOBALS, safeprint_rows);
 #endif
+    show_THREAD(NCURSES_GLOBALS, mutex_curses);
+#if USE_PTHREADS_EINTR
+    show_THREAD(NCURSES_GLOBALS, read_thread);
 #endif
+    show_WIDECH(NCURSES_GLOBALS, key_name);
+    show_TRACES(NCURSES_GLOBALS, trace_opened);
+    show_MLEAKS(NCURSES_GLOBALS, leak_checking);
+
+    printf("\n");
+    show_size(NCURSES_PRESCREEN);
+    show_offset(NCURSES_PRESCREEN, saved_tty);
+    show_offset(NCURSES_PRESCREEN, use_tioctl);
+    show_offset(NCURSES_PRESCREEN, _outch);
+    show_NORMAL(NCURSES_PRESCREEN, rippedoff);
+#if NCURSES_NO_PADDING
+    show_OPTION(NCURSES_PRESCREEN, _no_padding);
+#endif
+#if BROKEN_LINKER
+    show_offset(NCURSES_PRESCREEN, real_acs_map);
+#else
+    show_REENTR(NCURSES_PRESCREEN, real_acs_map);
+#endif
+
     return EXIT_SUCCESS;
 }
index 3d9c20d285b3981ec0f80d071d1dbeae05845c00..8ee481c6bbf61f3c0d477879baa99c7d0aba9f4a 100644 (file)
@@ -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            *
@@ -42,7 +42,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_data.c,v 1.75 2017/08/04 08:59:48 tom Exp $")
+MODULE_ID("$Id: lib_data.c,v 1.78 2018/03/01 18:09:21 tom Exp $")
 
 /*
  * OS/2's native linker complains if we don't initialize public data when
@@ -152,6 +152,10 @@ NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
     0,                         /* dbd_time */
     { { 0, 0 } },              /* dbd_vars */
 
+#ifdef USE_TERM_DRIVER
+    0,                         /* term_driver */
+#endif
+
 #ifndef USE_SP_WINDOWLIST
     0,                         /* _nc_windowlist */
 #endif
@@ -165,10 +169,22 @@ NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
     0,                         /* safeprint_rows */
 #endif
 
-#ifdef USE_TERM_DRIVER
-    0,                         /* term_driver */
+#ifdef USE_PTHREADS
+    PTHREAD_MUTEX_INITIALIZER, /* mutex_curses */
+    PTHREAD_MUTEX_INITIALIZER, /* mutex_prescreen */
+    PTHREAD_MUTEX_INITIALIZER, /* mutex_screen */
+    PTHREAD_MUTEX_INITIALIZER, /* mutex_update */
+    PTHREAD_MUTEX_INITIALIZER, /* mutex_tst_tracef */
+    PTHREAD_MUTEX_INITIALIZER, /* mutex_tracef */
+    0,                         /* nested_tracef */
+    0,                         /* use_pthreads */
+#if USE_PTHREADS_EINTR
+    0,                         /* read_thread */
+#endif
+#endif
+#if USE_WIDEC_SUPPORT
+    CHARS_0s,                  /* key_name */
 #endif
-
 #ifdef TRACE
     FALSE,                     /* trace_opened */
     CHARS_0s,                  /* trace_fname */
@@ -200,22 +216,6 @@ NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
 #if NO_LEAKS
     FALSE,                     /* leak_checking */
 #endif
-#ifdef USE_PTHREADS
-    PTHREAD_MUTEX_INITIALIZER, /* mutex_curses */
-    PTHREAD_MUTEX_INITIALIZER, /* mutex_prescreen */
-    PTHREAD_MUTEX_INITIALIZER, /* mutex_screen */
-    PTHREAD_MUTEX_INITIALIZER, /* mutex_update */
-    PTHREAD_MUTEX_INITIALIZER, /* mutex_tst_tracef */
-    PTHREAD_MUTEX_INITIALIZER, /* mutex_tracef */
-    0,                         /* nested_tracef */
-    0,                         /* use_pthreads */
-#endif
-#if USE_PTHREADS_EINTR
-    0,                         /* read_thread */
-#endif
-#if USE_WIDEC_SUPPORT
-    CHARS_0s,                  /* key_name */
-#endif
 };
 
 #define STACK_FRAME_0  { { 0 }, 0 }
@@ -230,14 +230,7 @@ NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen = {
     TRUE,                      /* use_env */
     FALSE,                     /* filter_mode */
     A_NORMAL,                  /* previous_attr */
-#ifndef USE_SP_RIPOFF
-    RIPOFF_0s,                 /* ripoff */
-    NULL,                      /* rsp */
-#endif
     {                          /* tparm_state */
-#ifdef TRACE
-       NULL,                   /* tname */
-#endif
        NULL,                   /* tparam_base */
 
        STACK_FRAME_0s,         /* stack */
@@ -252,12 +245,20 @@ NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen = {
 
        NUM_VARS_0s,            /* dynamic_var */
        NUM_VARS_0s,            /* static_vars */
+#ifdef TRACE
+       NULL,                   /* tname */
+#endif
     },
     NULL,                      /* saved_tty */
+    FALSE,                     /* use_tioctl */
+    0,                         /* _outch */
+#ifndef USE_SP_RIPOFF
+    RIPOFF_0s,                 /* ripoff */
+    NULL,                      /* rsp */
+#endif
 #if NCURSES_NO_PADDING
     FALSE,                     /* flag to set if padding disabled  */
 #endif
-    0,                         /* _outch */
 #if BROKEN_LINKER || USE_REENTRANT
     NULL,                      /* real_acs_map */
     0,                         /* LINES */
@@ -265,12 +266,13 @@ NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen = {
     8,                         /* TABSIZE */
     1000,                      /* ESCDELAY */
     0,                         /* cur_term */
+#endif
 #ifdef TRACE
+#if BROKEN_LINKER || USE_REENTRANT
     0L,                                /* _outchars */
     NULL,                      /* _tputs_trace */
 #endif
 #endif
-    FALSE,                     /* use_tioctl */
 };
 /* *INDENT-ON* */
 
index a4b87e3b887daf3812b9d592bb660d7b2b99a176..daf51a7e259cb67d6891e91e968902cf2915f24f 100644 (file)
@@ -48,7 +48,7 @@
 #include <locale.h>
 #endif
 
-MODULE_ID("$Id: lib_setup.c,v 1.189 2018/02/17 21:23:32 tom Exp $")
+MODULE_ID("$Id: lib_setup.c,v 1.191 2018/03/04 01:06:34 tom Exp $")
 
 /****************************************************************************
  *
@@ -827,8 +827,9 @@ _nc_find_prescr(void)
 {
     SCREEN *result = 0;
     PRESCREEN_LIST *p;
+    pthread_t id = GetThreadID();
     for (p = _nc_prescreen.allocated; p != 0; p = p->next) {
-       if (p->id == pthread_self()) {
+       if (p->id == id) {
            result = p->sp;
            break;
        }
@@ -845,8 +846,9 @@ NCURSES_EXPORT(void)
 _nc_forget_prescr(void)
 {
     PRESCREEN_LIST *p, *q;
+    pthread_t id = GetThreadID();
     for (p = _nc_prescreen.allocated, q = 0; p != 0; q = p, p = p->next) {
-       if (p->id == pthread_self()) {
+       if (p->id == id) {
            if (q) {
                q->next = p->next;
            } else {
@@ -882,7 +884,7 @@ new_prescr(void)
 #ifdef USE_PTHREADS
            PRESCREEN_LIST *p = typeCalloc(PRESCREEN_LIST, 1);
            if (p != 0) {
-               p->id = pthread_self();
+               p->id = GetThreadID();
                p->sp = sp;
                p->next = _nc_prescreen.allocated;
                _nc_prescreen.allocated = p;
index f0b3320cf8b29de6bd4c3ebb241e0c5b0424f916..cb9fd8697bd79bcb451df8b671aef8ce07eb97c9 100644 (file)
@@ -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            *
 #define CUR SP_TERMTYPE
 #endif
 
-MODULE_ID("$Id: lib_mvcur.c,v 1.145 2017/07/23 00:08:37 tom Exp $")
+MODULE_ID("$Id: lib_mvcur.c,v 1.146 2018/03/03 22:40:47 tom Exp $")
 
 #define WANT_CHAR(sp, y, x) NewScreen(sp)->_line[y].text[x]    /* desired state */
 
@@ -935,6 +935,7 @@ onscreen_mvcur(NCURSES_SP_DCLx
 #endif /* MAIN */
 
     if (usecost != INFINITY) {
+       TR(TRACE_MOVE, ("mvcur tactic %d", tactic));
        TPUTS_TRACE("mvcur");
        NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
                                buffer, 1, myOutCh);
index 18420e1b4372c42f6028119d8c33b0a99dcff90a..acad0fba2a6da68eb8c1232476e0de6a3f50454f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2014,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            *
 #define CUR SP_TERMTYPE
 #endif
 
-MODULE_ID("$Id: lib_vidattr.c,v 1.72 2017/06/24 12:13:42 tom Exp $")
+MODULE_ID("$Id: lib_vidattr.c,v 1.73 2018/03/03 22:08:12 tom Exp $")
 
 #define doPut(mode) \
        TPUTS_TRACE(#mode); \
        NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc)
 
 #define TurnOn(mask, mode) \
-       if ((turn_on & mask) && mode) { doPut(mode); }
+       if ((turn_on & mask) && mode) { \
+           TPUTS_TRACE(#mode); \
+           NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc); \
+       }
 
 #define TurnOff(mask, mode) \
-       if ((turn_off & mask) && mode) { doPut(mode); turn_off &= ~mask; }
+       if ((turn_off & mask) && mode) { \
+           TPUTS_TRACE(#mode); \
+           NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc); \
+           turn_off &= ~mask; \
+       }
 
        /* if there is no current screen, assume we *can* do color */
 #define SetColorsIf(why, old_attr) \
index 9d5c708f370393baa2230cb241a7312a97db67f3..d217fbcc028045f98bce2b197f5e3178c1a510f9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002-2014,2017 Free Software Foundation, Inc.              *
+ * Copyright (c) 2002-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            *
 #define CUR SP_TERMTYPE
 #endif
 
-MODULE_ID("$Id: lib_vid_attr.c,v 1.25 2017/06/24 13:22:27 tom Exp $")
+MODULE_ID("$Id: lib_vid_attr.c,v 1.26 2018/03/03 22:03:18 tom Exp $")
 
 #define doPut(mode) \
        TPUTS_TRACE(#mode); \
        NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc)
 
 #define TurnOn(mask, mode) \
-       if ((turn_on & mask) && mode) { doPut(mode); }
+       if ((turn_on & mask) && mode) { \
+           TPUTS_TRACE(#mode); \
+           NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc); \
+       }
 
 #define TurnOff(mask, mode) \
-       if ((turn_off & mask) && mode) { doPut(mode); turn_off &= ~mask; }
+       if ((turn_off & mask) && mode) { \
+           TPUTS_TRACE(#mode); \
+           NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc); \
+           turn_off &= ~mask; \
+       }
 
        /* if there is no current screen, assume we *can* do color */
 #define SetColorsIf(why, old_attr, old_pair) \
index b7c44070d4be1b2413b8d019777aa2035496b820..5c3da74f2f56154a11f2d353ef89f0da33d8b21f 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20180224) unstable; urgency=low
+ncurses6 (6.1+20180303) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sun, 18 Feb 2018 10:53:22 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Mon, 26 Feb 2018 18:33:42 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index b7c44070d4be1b2413b8d019777aa2035496b820..5c3da74f2f56154a11f2d353ef89f0da33d8b21f 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20180224) unstable; urgency=low
+ncurses6 (6.1+20180303) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sun, 18 Feb 2018 10:53:22 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Mon, 26 Feb 2018 18:33:42 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index c23db3330d4bf7a42ad9735927b1e3b3cf0c9b0e..bd7084fa7a1690a1dc67eda0faf1325297634115 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20180224) unstable; urgency=low
+ncurses6 (6.1+20180303) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sun, 18 Feb 2018 10:53:22 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Mon, 26 Feb 2018 18:33:42 -0500
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
index 94397471b816dcb17093299580af7b8ff05357af..5b19120c5145daffeb3d8d370628124d576d89c2 100644 (file)
@@ -5,13 +5,12 @@ ncurses6: binary-or-shlib-defines-rpath usr/bin/ncurses6 /usr/lib
 # 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.0
+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.0: ncurses
-
-ncurses6: postinst-must-call-ldconfig usr/lib/libtinfow6.so.6.0
+ncurses6: embedded-library usr/lib/libtinfow6.so.6.1: ncurses
+ncurses6: postinst-must-call-ldconfig usr/lib/libtinfow6.so.6.1
 
 # vile: confmode
diff --git a/package/debian/ncurses6.triggers b/package/debian/ncurses6.triggers
new file mode 100644 (file)
index 0000000..dd86603
--- /dev/null
@@ -0,0 +1 @@
+activate-noawait ldconfig
index 1fd4f6d47e56e474bd5564318c2ba69e93891d97..bbc7cf0a115ab6dd5d7b4183037f3c1d49ea1174 100644 (file)
@@ -5,13 +5,12 @@ ncursest6: binary-or-shlib-defines-rpath usr/bin/ncursest6 /usr/lib
 # 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.0
+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.0: ncurses
-
-ncursest6: postinst-must-call-ldconfig usr/lib/libtinfotw6.so.6.0
+ncursest6: embedded-library usr/lib/libtinfotw6.so.6.1: ncurses
+ncursest6: postinst-must-call-ldconfig usr/lib/libtinfotw6.so.6.1
 
 # vile: confmode
diff --git a/package/debian/ncursest6.triggers b/package/debian/ncursest6.triggers
new file mode 100644 (file)
index 0000000..dd86603
--- /dev/null
@@ -0,0 +1 @@
+activate-noawait ldconfig
index 0c8a757004a0707f6c4329a3cefe4baf5f5f0312..8309f99864e04155f5ee8e2f699ad3aa67b49bdb 100644 (file)
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.259 2018/02/18 15:53:22 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.260 2018/02/26 23:33:42 tom Exp $\r
 \r
 ; TODO add examples\r
 ; TODO bump ABI to 6\r
@@ -10,7 +10,7 @@
 !define VERSION_MAJOR "6"\r
 !define VERSION_MINOR "1"\r
 !define VERSION_YYYY  "2018"\r
-!define VERSION_MMDD  "0224"\r
+!define VERSION_MMDD  "0303"\r
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
 \r
 !define MY_ABI   "5"\r
index 491a688a17d979be351eb2c8849bd620a04e25cd..3cec4c85d79a26e11c269c44fbc3db1fd8a66cc7 100644 (file)
@@ -3,7 +3,7 @@
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.1
-Release: 20180224
+Release: 20180303
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index 5689a3fbe3f14ddf13effb26c56918e65bc30ec4..364a2dfa08c533e38e1e39d6502228e311669e8b 100644 (file)
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.1
-Release: 20180224
+Release: 20180303
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz