https://invisible-island.net/scripts/
  
  
2023-08-19
        * analyze-curses-symbols:
        in debug-trace, show the symbol categories for each symbol
        * analyze-curses-symbols:
        add ncurses 6 extensions tparm_s and tscan_s, in the terminfo section, and
        move comparable terminfo features from the ncurses categories into the
        terminfo category as t5 or t6.
        * analyze-curses-symbols:
        sort the keys in merge_syms so that the debug-trace is easier to read
2023-08-18
        * analyze-curses-symbols:
        With Debian 11, nm returns the "@" annotation for versioned symbols.  strip that.
2021-04-03
        * analyze-curses-symbols: the BSDs require -D option too
2021-03-05
        * analyze-curses-symbols: BSS and Common symbols count, too.
        * analyze-curses-symbols: don't try ldd unless the file is readable.
        * analyze-curses-symbols:
        ignore scripts as well as non-executable files
        * analyze-curses-symbols: Solaris needs the -D option of nm
2021-02-27
        * analyze-curses-symbols:
        add check for extended ncurses symbols in sym_is_terminal
        * analyze-curses-symbols:
        -d option shows relevant symbols as they are found
2021-02-26
        * analyze-curses-symbols:
        reset state in output from otool on each "Load command"
        look for symbols in a REEXPORT DYLIB
        * analyze-curses-symbols: make the other use of "-D" platform-dependent
        * analyze-curses-symbols:
        for MacOS (darwin), use "otool -l" rather than "ldd", as well as omitting
        the "-D" option for nm, and trimming a leading "_" from symbols.
2020-01-18
        * analyze-curses-symbols: set_term isn't in SVr3
        * analyze-curses-symbols: tgetflag was SVr3
        * analyze-curses-symbols:
        the manual page's introductory section lists parameter-names mixed with
        global-variable names.  I picked out several from the latter, noted here.
        * analyze-curses-symbols: note the SVr3 functions per documentation
        * analyze-curses-symbols: note the symbols from SVr2 documentation
2019-12-09
        * ncu-mapsyms: fix typo
2019-08-07
        * analyze-curses-symbols:
        handle the special case of "tgoto" where termcap/terminfo functions overlap
        by knowing that termcap applications must call tgetent
        * analyze-curses-symbols:
        a little cryptic, but compact: show the highest curses level in the
        summary block for each file.
        * analyze-curses-symbols:
        split up the duplicated curses lists into bsd, sys5 and xopen
        * analyze-curses-symbols: indent
        * analyze-curses-symbols:
        add SVr4 curses (there's overlap, which I'll address later)
        * analyze-curses-symbols: add 4.2BSD tabcol and 4.3BSD symbols
        * analyze-curses-symbols: 4.1BSD added 3 symbols
        * analyze-curses-symbols: add symbols for 4.0BSD "b0"
        * analyze-curses-symbols: add symbols for antique terminfo
2019-07-27
        * analyze-curses-symbols:
        workarounds to allow running with AIX and HPUX.  The latter is more successful,
        the former's stripped executables contain no symbols at all
        * analyze-curses-symbols: use env rather than perl-path
2019-07-21
        * analyze-curses-symbols: bump
        * analyze-curses-symbols: add ncurses-6 symbols
2019-05-04
        * check-map-vs-sym: fix typo, remove overly-verbose message
        * check-map-vs-sym: RCS_BASE
2016-10-29
        * ncu-symbols: copyright
        * ncu-symbols: wide symbols start with 2002/10/12
2016-01-26
        * dlg-symbols: add a release
2015-07-11
        * ncu-mapsyms:
        since I cutoff before 6.0, there is no "current" date, but only dates for
        the most recent change to the ncurses ABI.  Fix using the most recent date.
        * ncu-mapsyms:
        fix a debug-statement, which was showing a hash code rather than the collectin of strings
        * ncu-symbols:
        in the final step to associate "_*" pattern, the ".sym" files have already
        been moved to package/SAVE, so the wildcard does not refer to a valid file.
2015-06-27
        * ncu-mapsyms: add deprecated symbols for Debian #788610
2015-06-13
        * ncu-mapsyms:
        fix -- needs retesting -- when I regenerated map-files, the "-s" option
        left some of the symbols out, as well as putting them in the wrong dates.
        At least part of the problem is that I was testing the old label (pre-merge)
        when I should have tested the new label.  This change improves the merge,
        but there seems to be an unwanted suffix in some cases.
        * ncu-symbols: fix typo from 2015/02/14
        * ncu-symbols: explain the last change
        * ncu-symbols: generate symbols for the _last_ 5.9 patch
2015-02-25
        * ncu-mapsyms:
        the --without-libtool option does not (really) affect ABI, though we may
        use different library versioning.
        * dlg-symbols: for now, do not use "-s" and "-p" options
        * dlg-symbols:
        my versioning scheme for dialog differs from ncurses: in ncurses, everything
        is "vM_M_MMMMMMMM", with occasional "vM_M", while dialog uses "tMMMMMMMM"
        with occasional "vM_M"
        * ncu-mapsyms: eliminate an unnecessary verbose-message
        * dlg-symbols: s/dist.mk/VERSION/ for rlog lookup
        * dlg-symbols:
        initially I had only libtool -- use that unless I find case where it fails
2015-02-24
        * dlg-symbols: RCS_BASE
        * ncu-mapsyms:
        fix for my dpkg builds which are in a temporary directory named "cdialog"
        * ncu-mapsyms:
        generalize ncurses' "initscr" a little - probably need better solution
        * ncu-mapsyms: show the number of symbols read from needed-syms
        * ncu-mapsyms:
        start generalizing, to check in VERSION file if no dist.mk found
2015-02-20
        * analyze-curses-symbols: fill in check for ncurses-extensions
        * analyze-curses-symbols: handle read from stdin
        * analyze-curses-symbols: typo
        * analyze-curses-symbols:
        handle programs such as aptitude which depend on library which depends on curses.
2015-02-19
        * analyze-curses-symbols: documentation fixes
        * analyze-curses-symbols:
        ignore symbolic link to directory in traversal
        * analyze-curses-symbols: add -q, -r and -s options
2015-02-18
        * analyze-curses-symbols: show counts of symbol usage
        * analyze-curses-symbols: accumulate counts for each symbol vs program
        * analyze-curses-symbols:
        add functions for reading the dynamic symbols from both libraries and application
        * analyze-curses-symbols: q/d integration of "ldd"
        * analyze-curses-symbols: RCS_BASE
2015-02-14
        * ncu-symbols:
        fix an inconsistency in the way I checked for weak-symbols
2015-02-10
        * ncu-symbols:
        move the "-v" into $MAP_OPTS, and echo that (for the log)
2015-02-09
        * ncu-mapsyms:
        add new "-t" option to get better control over the library renaming done
        when --enable-weak-symbols is used.
        * ncu-symbols:
        try a different tack, with new option "-t" to ncu-mapsyms
        * ncu-mapsyms:
        after the last fix, I found that the data returned from read_config() did
        not match the expected hash referencing.  This reworks a chunk in that - seems
        to fix the immediate problem.
2015-02-08
        * ncu-mapsyms:
        when I revised the comment-header with options, I overlooked get_config_params,
        which assumed the old layout.  When using "ncu-mapsyms -s", that caused all
        of the options to be emitted on a single line.
2015-02-07
        * ncu-symbols: add header for log to show "current"
        * ncu-symbols:
        fix typo that introduced termlib option values into header
        * ncu-symbols:
        looks like adding weak symbols only adds to thread - simple...
        * ncu-symbols:
        override tinfo/tic library names to force weak-symbol stuff into "right" file
2015-01-31
        * ncu-symbols: turn on verbose
        * ncu-mapsyms: overlooked filling in long headers for ".sym" file
        * ncu-symbols: make output a little easier to find the ncu-mapsyms call
        * compare-mapsyms: typo
        * ncu-mapsyms:
        when first creating a ".map" file, check (since it is being created with a
        different name) if the original ".map" file exists, and if so, what configure
        options its header might list.
        * ncu-mapsyms:
        the reason I had no options was that for autoconf 2.13, the "--version"
        option does not tell about the configure options.  added a fallback to
        read the comment-header, which has that information.
        * ncu-mapsyms:
        better show at least "(none)" to indicate the build-date, even if there were
        no options.
        * ncu-mapsyms:
        original build of 5.0 has no options to add, so a hash was empty - add check
2015-01-24
        * ncu-mapsyms:
        first cut of revised configure-options logic, ready to test in ncu-symbols
        * ncu-mapsyms: first cut at writing hashes for options
        * ncu-mapsyms:
        split-out add_config, so that all of the logic for configure-options is
        in functions shared between map/sym functions
        * ncu-mapsyms:
        split-out read_options function.  Drop the get_merge_count feature, since
        that doesn't fit into a function scenario - and I'll be revising the format
        of the options anyway.
        * ncu-mapsyms: split-out write_options function
        * ncu-mapsyms: trim uninteresting configure options
2015-01-17
        * ncu-symbols: comment-out debug option
        * ncu-mapsyms:
        add a special case to work around --weak-symbols option which Werner seems to
        have persuaded me to make the library suffix "t" omitted.
        * ncu-symbols:
        In response to Werner's comment, I tried combining --enable-weak-symbols,
        but had forgotten that suppresses the "t" part of the suffix (and added a
        lot of pthread stuff to ncursesw.map).  Take that out, and write a note in
        INSTALL to explain better about renaming map-files in the configure options.
        * ncu-symbols:
        first cut of changes to detect when map/sym files do/do not change
        * compare-mapsyms: RCS_BASE
        * report-mapsyms: make the "-v" message go to stderr
        * report-mapsyms: RCS_BASE
2015-01-12
        * ncu-symbols: Werner reported a problem with hashed-db vs ticlib
2015-01-10
        * ncu-mapsyms:
        q/d implementation of "-p" assumes that I've marked the final state as "current"
        * ncu-mapsyms: start work on -p option
        * ncu-symbols: correct spelling of "broken_linker"
        add hashed-db to list
2015-01-03
        * ncu-symbols: date
        * ncu-symbols: tried - didn't help
        * ncu-mapsyms: date
        * ncu-mapsyms: _nc_freeall is used in Ada95 binding
2014-12-27
        * ncu-symbols: when doing "-a", finish by resyncing symbols
2014-12-13
        * ncu-mapsyms: reported in
                http://lists.gnu.org/archive/html/bug-ncurses/2014-12/msg00007.html
        I had moved comp_captab and comp_hash from libtic to libtinfo after 5.7,
        and without marking them specially, they were "still" in libtic.
2014-12-06
        * ncu-mapsyms: ensure ".sym" files are the same scope
        * ncu-mapsyms:
        have to ripple-up scope when synchronizing, to ensure that if one library
        makes something global, everyone gets it.
        * ncu-mapsyms: implemented the synchronization part of "-s" option
        * ncu-mapsyms:
        ok - before transforming with "-s", the input/output files are identical
        * ncu-mapsyms: for "-s", make comment-header identical to input
        * ncu-mapsyms: for "-s" option, preserve the merge-count in the header
        * ncu-mapsyms:
        a little more - reading/writing (but I see unexplained differences - debug)
        * ncu-mapsyms:
        start work on "-s" option by moving globals into functions - so I can reuse
        the parts for reading/writing ".map" files
        * ncu-mapsyms:
        add two entrypoints for ABI stability per notes in INSTALL
2014-11-29
        * ncu-symbols:
        tweaks to make it simpler to see in the logs the merge-process.
        * ncu-mapsyms:
        if previously global, it seems we have to keep it global -- otherwise successive
        builds for a given date do not merge properly.
        * ncu-mapsyms: implement merge-options comments for .map files
        * ncu-mapsyms:
        fix a case where tack-symbols did not percolate as globals
        * ncu-symbols:
        when doing "all" versions, infer "current" from the last label in dist.mk
        * ncu-symbols: add copyright notice
2014-11-28
        * ncu-symbols: go for broke
        * ncu-symbols: first cut
        * ncu-symbols: start restructuring to allow adding command-line options
        * ncu-mapsyms: fixes for new/old scope
2014-11-27
        * ncu-mapsyms: map "glue" into "global"
        * ncu-symbols: build-fix for 5.7
        * ncu-symbols:
        workaround for building 5.5 (glibc started #define'ing _XOPEN_SOURCE_EXTENDED,
        which breaks my build since I ifdef'd wint_t inside that).
        * ncu-symbols:
        got 5.4 to build - though it seems to be missing something.
        * ncu-symbols: trap isn't doing what I wanted - use explicit checks.
        * ncu-symbols: better error-exit
        * ncu-symbols: that last omitted _nc_read_termcap - fix
        * ncu-symbols: refine that a little (still testing v5_0)
        * ncu-symbols:
        I may revise this, but for now, ignore the c++ binding since old 5.0 does not compile.
        * ncu-symbols: handle a special case in 2004 for --enable-widec switch
2014-11-26
        * ncu-symbols:
        make it possible to merge releases one-by-one by not zapping the .map/.sym files
2014-11-24
        * ncu-mapsyms: fix another merge problem
2014-11-23
        * ncu-mapsyms:
        fix one of the tic/tinfo merge problems - %tack_symbols has to say which to use
        * ncu-mapsyms:
        make parsing a little easier to follow by showing the _original_ line in the debugging trace
        * ncu-mapsyms:
        add comment at top of .map / .sym explaining what it is for
        * ncu-mapsyms:
        start showing config values in .map header (no merge done yet)
2014-11-22
        * ncu-mapsyms: working to preserve ncurses_tic aka "tic"
        * ncu-mapsyms: add -v option
        * ncu-mapsyms: add verbose check for opening files
        * ncu-mapsyms:
        fixes for -m option (finding that the tic-nodes get lost early on)
        * ncu-mapsyms: add -m option
        * ncu-mapsyms: add -d option
        fix a merge problem, where older ncurses library containing tinfo overrode newer tinfo library
        * ncu-symbols:
        can't really use "fast" build, since the needed-syms works on the executables as well
        * ncu-mapsyms: filter out "_*" token
        * ncu-mapsyms: fix glitch in "prior", when nothing changes in a release
        * ncu-mapsyms:
        initializing a hash requires two values - fix tack_symbols
        * ncu-mapsyms: tack-symbols seem to work.
        * ncu-mapsyms: split-out sub generic_libname
        start working to make tack's special symbols global
        * ncu-mapsyms:
        merge old ".map" into new ".map" when the latter is missing data
        * ncu-mapsyms:
        map library names into the ones I should use for versioned-symbols.
        * ncu-mapsyms: write the data in %new_symbols to mapfile
        more work to prepare that hash is needed...
        * ncu-mapsyms:
        to write the map-file, have to loop over all of the libraries...
        * ncu-mapsyms: start building indexes needed for writing map-file
        * ncu-mapsyms: q/d check_map()
        * ncu-mapsyms:
        start working to merge the existing ".map" data into new data
        * ncu-mapsyms: build a hash for each node from .map file
        * ncu-mapsyms: parse ".map" file
2014-11-21
        * ncu-mapsyms: split-out this_lib and output_file functions
2014-11-20
        * ncu-symbols: cannot build ticlib and termcap support at the same time
        * ncu-symbols: --disable-root-environ
2014-11-19
        * ncu-mapsyms: merge the options-comments too
        * ncu-symbols: two more quirks
        * ncu-mapsyms:
        merge contents of ".sym" files, allowing ncu-symbols to make overlapping
        builds to get workable list for several combinations.
        * ncu-symbols:
        tweak to provide overlapping sets of symbols for sp-funcs vs reentrant options
        * ncu-mapsyms: ncurses' private symbols include _traceXXX
        * needed-syms: copyright
        * ncu-mapsyms:
        show the options used for generating the libraries used for symbols...
        * ncu-symbols: proposed changes to factor into ncu-getsyms
        * ncu-mapsyms:
        needed-syms can (for instance libtic) return C runtime symbols.
        filter those out.
2014-11-18
        * ncu-mapsyms: show progress
        * ncu-symbols: use ncu-mapsyms
        * ncu-mapsyms: write a ".sym" file
        * ncu-mapsyms: read data via "needed-syms"
        * needed-syms: mark the "glue" symbols as such
        * ncu-mapsyms: RCS_BASE
        * needed-syms: make data for "local:" the library name, for consistency
        * needed-syms: simplify output a little
        * needed-syms:
        first cut - gather all info, some work needed to get parsable results
        * needed-syms: RCS_BASE
2014-11-17
        * ncu-symbols: need testing...
2014-11-08
        * ncu-symbols:
        once successfully configured for shared-libraries, make the libraries
        * ncu-symbols: RCS_BASE