Git 2.21 Release Notes
======================
Backward Compatibility Notes
----------------------------
* Historically, the "-m" (mainline) option can only be used for "git
cherry-pick" and "git revert" when working with a merge commit.
This version of Git no longer warns or errors out when working with
a single-parent commit, as long as the argument to the "-m" option
is 1 (i.e. it has only one parent, and the request is to pick or
revert relative to that first parent). Scripts that relied on the
behaviour may get broken with this change.
Updates since v2.20
-------------------
UI, Workflows & Features
* The "http.version" configuration variable can be used with recent
enough versions of cURL library to force the version of HTTP used
to talk when fetching and pushing.
* Small fixes and features for fast-export and fast-import, mostly on
the fast-export side has been made.
* "git push $there $src:$dst" rejects when $dst is not a fully
qualified refname and it is not clear what the end user meant. The
codepath has been taught to give a clearer error message, and also
guess where the push should go by taking the type of the pushed
object into account (e.g. a tag object would want to go under
refs/tags/).
* "git checkout [<tree-ish>] path..." learned to report the number of
paths that have been checked out of the index or the tree-ish,
which gives it the same degree of noisy-ness as the case in which
the command checks out a branch. "git checkout -m <pathspec>" to
undo conflict resolution gives a similar message.
* "git quiltimport" learned "--keep-non-patch" option.
* "git worktree remove" and "git worktree move" refused to work when
there is a submodule involved. This has been loosened to ignore
uninitialized submodules.
* "git cherry-pick -m1" was forbidden when picking a non-merge
commit, even though there _is_ parent number 1 for such a commit.
This was done to avoid mistakes back when "cherry-pick" was about
picking a single commit, but is no longer useful with "cherry-pick"
that can pick a range of commits. Now the "-m$num" option is
allowed when picking any commit, as long as $num names an existing
parent of the commit.
* Update "git multimail" from the upstream.
* "git p4" update.
* The "--format=<placeholder>" option of for-each-ref, branch and tag
learned to show a few more traits of objects that can be learned by
the object_info API.
* "git rebase -i" learned to re-execute a command given with 'exec'
to run after it failed the last time.
* "git diff --color-moved-ws" updates.
* Custom userformat "log --format" learned %S atom that stands for
the tip the traversal reached the commit from, i.e. --source.
* "git instaweb" learned to drive http.server that comes with
"batteries included" Python installation (both Python2 & 3).
* A new encoding UTF-16LE-BOM has been invented to force encoding to
UTF-16 with BOM in little endian byte order, which cannot be directly
generated by using iconv.
* A new date format "--date=human" that morphs its output depending
on how far the time is from the current time has been introduced.
"--date=auto:human" can be used to use this new format (or any
existing format) when the output is going to the pager or to the
terminal, and otherwise the default format.
Performance, Internal Implementation, Development Support etc.
* Code clean-up with optimization for the codepath that checks
(non-)existence of loose objects.
* More codepaths have become aware of working with in-core repository
instances other than the default "the_repository".
* The "strncat()" function is now among the banned functions.
* Portability updates for the HPE NonStop platform.
* Earlier we added "-Wformat-security" to developer builds, assuming
that "-Wall" (which includes "-Wformat" which in turn is required
to use "-Wformat-security") is always in effect. This is not true
when config.mak.autogen is in use, unfortunately. This has been
fixed by unconditionally adding "-Wall" to developer builds.
* The loose object cache used to optimize existence look-up has been
updated.
* Flaky tests can now be repeatedly run under load with the
"--stress" option.
* Documentation/Makefile is getting prepared for manpage
localization.
* "git fetch-pack" now can talk the version 2 protocol.
* sha-256 hash has been added and plumbed through the code to allow
building Git with the "NewHash".
* Debugging help for http transport.
* "git fetch --deepen=<more>" has been corrected to work over v2
protocol.
* The code to walk tree objects has been taught that we may be
working with object names that are not computed with SHA-1.
* The in-core repository instances are passed through more codepaths.
* Update the protocol message specification to allow only the limited
use of scaled quantities. This is to ensure potential compatibility
issues will not get out of hand.
* Micro-optimize the code that prepares commit objects to be walked
by "git rev-list" when the commit-graph is available.
* "git fetch" and "git upload-pack" learned to send all exchanges over
the sideband channel while talking the v2 protocol.
* The codepath to write out commit-graph has been optimized by
following the usual pattern of visiting objects in in-pack order.
* The codepath to show progress meter while writing out commit-graph
file has been improved.
* Cocci rules have been updated to encourage use of strbuf_addbuf().
* "git rebase --merge" has been reimplemented by reusing the internal
machinery used for "git rebase -i".
* More code in "git bisect" has been rewritten in C.
* Instead of going through "git-rebase--am" scriptlet to use the "am"
backend, the built-in version of "git rebase" learned to drive the
"am" backend directly.
* The assumption to work on the single "in-core index" instance has
been reduced from the library-ish part of the codebase.
* The test lint learned to catch non-portable "sed" options.
* "git pack-objects" learned another algorithm to compute the set of
objects to send, that trades the resulting packfile off to save
traversal cost to favor small pushes.
* The travis CI scripts have been corrected to build Git with the
compiler(s) of our choice.
* "git submodule update" learned to abort early when core.worktree
for the submodule is not set correctly to prevent spreading damage.
* Test suite has been adjusted to run on Azure Pipeline.
* Running "Documentation/doc-diff x" from anywhere other than the
top-level of the working tree did not show the usage string
correctly, which has been fixed.
* Use of the sparse tool got easier to customize from the command
line to help developers.
* A new target "coverage-prove" to run the coverage test under
"prove" has been added.
* A flakey "p4" test has been removed.
* The code and tests assume that the system supplied iconv() would
always use BOM in its output when asked to encode to UTF-16 (or
UTF-32), but apparently some implementations output big-endian
without BOM. A compile-time knob has been added to help such
systems (e.g. NonStop) to add BOM to the output to increase
portability.
Fixes since v2.20
-----------------
* Updates for corner cases in merge-recursive.
(merge cc4cb0902c en/merge-path-collision later to maint).
* "git checkout frotz" (without any double-dash) avoids ambiguity by
making sure 'frotz' cannot be interpreted as a revision and as a
path at the same time. This safety has been updated to check also
a unique remote-tracking branch 'frotz' in a remote, when dwimming
to create a local branch 'frotz' out of a remote-tracking branch
'frotz' from a remote.
(merge be4908f103 nd/checkout-dwim-fix later to maint).
* Refspecs configured with "git -c var=val clone" did not propagate
to the resulting repository, which has been corrected.
(merge 7eae4a3ac4 sg/clone-initial-fetch-configuration later to maint).
* A properly configured username/email is required under
user.useConfigOnly in order to create commits; now "git stash"
(even though it creates commit objects to represent stash entries)
command is exempt from the requirement.
(merge 3bc2111fc2 sd/stash-wo-user-name later to maint).
* The http-backend CGI process did not correctly clean up the child
processes it spawns to run upload-pack etc. when it dies itself,
which has been corrected.
(merge 02818a98d7 mk/http-backend-kill-children-before-exit later to maint).
* "git rev-list --exclude-promisor-objects" had to take an object
that does not exist locally (and is lazily available) from the
command line without barfing, but the code dereferenced NULL.
(merge 4cf67869b2 md/list-lazy-objects-fix later to maint).
* The traversal over tree objects has learned to honor
":(attr:label)" pathspec match, which has been implemented only for
enumerating paths on the filesystem.
(merge 5a0b97b34c nd/attr-pathspec-in-tree-walk later to maint).
* BSD port updates.
(merge 4e3ecbd439 cb/openbsd-allows-reading-directory later to maint).
(merge b6bdc2a0f5 cb/t5004-empty-tar-archive-fix later to maint).
(merge 82cbc8cde2 cb/test-lint-cp-a later to maint).
* Lines that begin with a certain keyword that come over the wire, as
well as lines that consist only of one of these keywords, ought to
be painted in color for easier eyeballing, but the latter was
broken ever since the feature was introduced in 2.19, which has
been corrected.
(merge 1f67290450 hn/highlight-sideband-keywords later to maint).
* "git log -G<regex>" looked for a hunk in the "git log -p" patch
output that contained a string that matches the given pattern.
Optimize this code to ignore binary files, which by default will
not show any hunk that would match any pattern (unless textconv or
the --text option is in effect, that is).
(merge e0e7cb8080 tb/log-G-binary later to maint).
* "git submodule update" ought to use a single job unless asked, but
by mistake used multiple jobs, which has been fixed.
(merge e3a9d1aca9 sb/submodule-fetchjobs-default-to-one later to maint).
* "git stripspace" should be usable outside a git repository, but
under the "-s" or "-c" mode, it didn't.
(merge 957da75802 jn/stripspace-wo-repository later to maint).
* Some of the documentation pages formatted incorrectly with
Asciidoctor, which have been fixed.
(merge b62eb1d2f4 ma/asciidoctor later to maint).
* The core.worktree setting in a submodule repository should not be
pointing at a directory when the submodule loses its working tree
(e.g. getting deinit'ed), but the code did not properly maintain
this invariant.
* With zsh, "git cmd path<TAB>" was completed to "git cmd path name"
when the completed path has a special character like SP in it,
without any attempt to keep "path name" a single filename. This
has been fixed to complete it to "git cmd path\ name" just like
Bash completion does.
* The test suite tried to see if it is run under bash, but the check
itself failed under some other implementations of shell (notably
under NetBSD). This has been corrected.
(merge 54ea72f09c sg/test-bash-version-fix later to maint).
* "git gc" and "git repack" did not close the open packfiles that
they found unneeded before removing them, which didn't work on a
platform incapable of removing an open file. This has been
corrected.
(merge 5bdece0d70 js/gc-repack-close-before-remove later to maint).
* The code to drive GIT_EXTERNAL_DIFF command relied on the string
returned from getenv() to be non-volatile, which is not true, that
has been corrected.
(merge 6776a84dae kg/external-diff-save-env later to maint).
* There were many places the code relied on the string returned from
getenv() to be non-volatile, which is not true, that have been
corrected.
(merge 0da0e9268b jk/save-getenv-result later to maint).
* The v2 upload-pack protocol implementation failed to honor
hidden-ref configuration, which has been corrected.
(merge e20b4192a3 jk/proto-v2-hidden-refs-fix later to maint).
* "git fetch --recurse-submodules" may not fetch the necessary commit
that is bound to the superproject, which is getting corrected.
(merge be76c21282 sb/submodule-recursive-fetch-gets-the-tip later to maint).
* "git rebase" internally runs "checkout" to switch between branches,
and the command used to call the post-checkout hook, but the
reimplementation stopped doing so, which is getting fixed.
* "git add -e" got confused when the change it wants to let the user
edit is smaller than the previous change that was left over in a
temporary file.
(merge fa6f225e01 js/add-e-clear-patch-before-stating later to maint).
* "git p4" failed to update a shelved change when there were moved
files, which has been corrected.
(merge 7a10946ab9 ld/git-p4-shelve-update-fix later to maint).
* The codepath to read from the commit-graph file attempted to read
past the end of it when the file's table-of-contents was corrupt.
* The compat/obstack code had casts that -Wcast-function-type
compilation option found questionable.
(merge 764473d257 sg/obstack-cast-function-type-fix later to maint).
* An obvious typo in an assertion error message has been fixed.
(merge 3c27e2e059 cc/test-ref-store-typofix later to maint).
* In Git for Windows, "git clone \\server\share\path" etc. that uses
UNC paths from command line had bad interaction with its shell
emulation.
* "git add --ignore-errors" did not work as advertised and instead
worked as an unintended synonym for "git add --renormalize", which
has been fixed.
(merge e2c2a37545 jk/add-ignore-errors-bit-assignment-fix later to maint).
* On a case-insensitive filesystem, we failed to compare the part of
the path that is above the worktree directory in an absolute
pathname, which has been corrected.
* Asking "git check-attr" about a macro (e.g. "binary") on a specific
path did not work correctly, even though "git check-attr -a" listed
such a macro correctly. This has been corrected.
(merge 7b95849be4 jk/attr-macro-fix later to maint).
* "git pack-objects" incorrectly used uninitialized mutex, which has
been corrected.
(merge edb673cf10 ph/pack-objects-mutex-fix later to maint).
* "git checkout -b <new> [HEAD]" to create a new branch from the
current commit and check it out ought to be a no-op in the index
and the working tree in normal cases, but there are corner cases
that do require updates to the index and the working tree. Running
it immediately after "git clone --no-checkout" is one of these
cases that an earlier optimization kicked in incorrectly, which has
been fixed.
(merge 8424bfd45b bp/checkout-new-branch-optim later to maint).
* "git diff --color-moved --cc --stat -p" did not work well due to
funny interaction between a bug in color-moved and the rest, which
has been fixed.
(merge dac03b5518 jk/diff-cc-stat-fixes later to maint).
* When GIT_SEQUENCE_EDITOR is set, the command was incorrectly
started when modes of "git rebase" that implicitly uses the
machinery for the interactive rebase are run, which has been
corrected.
(merge 891d4a0313 pw/no-editor-in-rebase-i-implicit later to maint).
* The commit-graph facility did not work when in-core objects that
are promoted from unknown type to commit (e.g. a commit that is
accessed via a tag that refers to it) were involved, which has been
corrected.
(merge 4468d4435c sg/object-as-type-commit-graph-fix later to maint).
* "git fetch" output cleanup.
(merge dc40b24df4 nd/fetch-compact-update later to maint).
* "git cat-file --batch" reported a dangling symbolic link by
mistake, when it wanted to report that a given name is ambiguous.
* Documentation around core.crlf has been updated.
(merge c9446f0504 jk/autocrlf-overrides-eol-doc later to maint).
* The documentation of "git commit-tree" said that the command
understands "--gpg-sign" in addition to "-S", but the command line
parser did not know about the longhand, which has been corrected.
* "git rebase -x $cmd" did not reject multi-line command, even though
the command is incapable of handling such a command. It now is
rejected upfront.
(merge c762aada1a pw/rebase-x-sanity-check later to maint).
* Output from "git help" was not correctly aligned, which has been
fixed.
(merge 6195a76da4 nd/help-align-command-desc later to maint).
* The "git submodule summary" subcommand showed shortened commit
object names by mechanically truncating them at 7-hexdigit, which
has been improved to let "rev-parse --short" scale the length of
the abbreviation with the size of the repository.
(merge 0586a438f6 sh/submodule-summary-abbrev-fix later to maint).
* The way the OSX build jobs updates its build environment used the
"--quiet" option to "brew update" command, but it wasn't all that
quiet to be useful. The use of the option has been replaced with
an explicit redirection to the /dev/null (which incidentally would
have worked around a breakage by recent updates to homebrew, which
has fixed itself already).
(merge a1ccaedd62 sg/travis-osx-brew-breakage-workaround later to maint).
* "git --work-tree=$there --git-dir=$here describe --dirty" did not
work correctly as it did not pay attention to the location of the
worktree specified by the user by mistake, which has been
corrected.
(merge c801170b0c ss/describe-dirty-in-the-right-directory later to maint).
* "git fetch" over protocol v2 that needs to make a second connection
to backfill tags did not clear a variable that holds shallow
repository information correctly, leading to an access of freed
piece of memory.
* Some errors from the other side coming over smart HTTP transport
were not noticed, which has been corrected.
* Code cleanup, docfix, build fix, etc.
4.3.9:
- Fixed a bug that led to an incompatibility with black
4.3.8:
- Fixed a bug that led to the recursive option not always been available from the command line.
4.3.7:
- Expands the finder failsafe to occur on the creation of the finder objects.
SQLite Release 3.27.2:
Fix a bug in the IN operator that was introduced by an attempted optimization in version 3.27.0.
Fix a bug causing a crash when a window function is misused.
Fix various documentation typos
2019-01 Release 0.5.4
Lia Skalkos
* Enable options to be passed to #write_to_graphic_file (4ca972). For details see PR #41
Horst Duchene
* Fix travis-ci errors
* Add new ruby versions
* Fix gemspec errors
* Fix lint warnings
* Use version stream 0.5.2
== 1.8.1 - 31-Jan-2019
* The VERSION constant is now frozen.
* Added metadata to the gemspec.
* Fixed missing hyphen in license name.
* Updated cert, should be good for about 10 years.
1.1.0 (2018-10-13)
* [feat] Introduces Mustache#escape.
* This method receives a non-stringified value to allow for more flexibility
in the escaping, like JSON. (#245)
* [bug] Raise correct error when closing unopened section (#240)
* [bug] Fix use of deprecated File.exists? (#241)
* [bug] Fix variable shadowing warning (#241)
## 3.3.0 - 2019-01-23 {#version-3-3-0}
### Improvements
* Added support for auto test run when all tests are defined in
modules.
* Added support for defining methods to test case class in multiple
threads.
[GitHub#159][Reported by Charles Oliver Nutter]
* Suppressed warnings on Ruby 2.5.
[GitHub#160][Reported by Daniel Berger]
* Suppressed warnings on Ruby 2.7.
4.3.6:
- Fixes a fatal error that occurs if a single finder throws an exception. Important as we add more finders that utilize third party libraries.
4.3.5:
This is the final Python 2.x release of isort, and includes the following major changes:
Potentially Interface Breaking:
- The -r option for removing imports has been renamed -rm to avoid accidental deletions and confusion with the -rc recursive option.
- __init__.py has been removed from the default ignore list. The default ignore list is now empty - with all items needing to be explicitly ignored.
- Isort will now by default ignore .tox / venv folders in an effort to be "safe". You can disable this behaviour by setting the "--unsafe" flag, this is separate from any skip or not skip rules you may have in place.
- Isort now allows for files missing closing newlines in whitespace check
- distutils support has been removed to simplify setup.py
New:
- Official Python 3.7 Compatibility.
- Support for using requirements files to auto determine third-paty section if pipreqs & requirementslib are installed.
- Added support for using pyproject.toml if toml is installed.
- Added support for XDG_HOME if appdirs is installed.
- An option has been added to enable ignoring trailing comments ('ignore_comments') defaulting to False.
- Added support to enable line length sorting for only specific sections
- Added a correctly_sorted property on the SortsImport to enable more intuitive programmatic checking.
Fixes:
- Improved black compatibility.
- Isort will no detect files in the CWD as first-party.
- Fixed several cases where '-ns' or 'not_skip' was being incorrectly ignored.
- Fixed sorting of relative path imports ('.', '..', '...', etc).
- Fixed bugs caused by a failure to maintain order when loading iterables from config files.
- Correctly handle CPython compiled imports and others that need EXT_SUFFIX to correctly identify.
- Fixed handling of Symbolic Links to follow them when walking the path.
- Fixed handling of relative known_paths.
- Fixed lack of access to all wrap modes from the CLI.
- Fixed handling of FIFO files.
- Fixed a bug that could result in multiple imports being inserted on the same line.
pluggy 0.9.0
Features
- PluginManager.load_setuptools_entrypoints now accepts a name parameter that when given will
load only entry points with that name.
PluginManager.load_setuptools_entrypoints also now returns the number of plugins loaded by the
call, as opposed to the number of all plugins loaded by all calls to this method.
Bug Fixes
- Fix internal varnames function for PyPy3.
3.7.3
* Temporarily degrade to use ASCII for author's name.
3.7.2
(also released as 3.8.0)
* Repackaged using setuptools_scm for file discovery and other features
from skeleton <https://pypi.org/project/skeleton_.
* Package now unconditionally installs the configparser module.
Doing so allowed for the project to release a universal wheel for
Python 2 and Python 3. Even though the configparser module is
installed unconditionally on Python 3, it's expected that it will be
masked in that environment by the module in stdlib, so the same
interface applies.
3.7.1
* Fixed issue on Python 2.x when future is present.
3.7.0
* Merge functionality from Python 3.7.2. Now ConfigParser accepts bytes
paths as well as any
PathLike <https://docs.python.org/3/library/os.html#os.PathLike>_
object, including those found in the pathlib2 backport.
v0.28.1
-------
This is a bugfix release with the following change:
* The deprecated functions (`git_buf_free` and the `giterr_` family of
functions) are now exported properly. In the v0.28 release, they were
not given the correct external attributes and they did not have the
correct linkage visibility in the v0.28 library.
v0.28
-----
### Changes or improvements
* The library is now always built with cdecl calling conventions on
Windows; the ability to build a stdcall library has been removed.
* Reference log creation now honors `core.logallrefupdates=always`.
* Fix some issues with the error-reporting in the OpenSSL backend.
* HTTP proxy support is now builtin; libcurl is no longer used to support
proxies and is removed as a dependency.
* Certificate and credential callbacks can now return `GIT_PASSTHROUGH`
to decline to act; libgit2 will behave as if there was no callback set
in the first place.
* The line-ending filtering logic - when checking out files - has been
updated to match newer git (>= git 2.9) for proper interoperability.
* Symbolic links are now supported on Windows when `core.symlinks` is set
to `true`.
* Submodules with names which attempt to perform path traversal now have their
configuration ignored. Such names were blindly appended to the
`$GIT_DIR/modules` and a malicious name could lead to an attacker writing to
an arbitrary location. This matches git's handling of CVE-2018-11235.
* Object validation is now performed during tree creation in the
`git_index_write_tree_to` API.
* Configuration variable may now be specified on the same line as a section
header; previously this was erroneously a parser error.
* When an HTTP server supports both NTLM and Negotiate authentication
mechanisms, we would previously fail to authenticate with any mechanism.
* The `GIT_OPT_SET_PACK_MAX_OBJECTS` option can now set the maximum
number of objects allowed in a packfile being downloaded; this can help
limit the maximum memory used when fetching from an untrusted remote.
* Line numbers in diffs loaded from patch files were not being populated;
they are now included in the results.
* The repository's index is reloaded from disk at the beginning of
`git_merge` operations to ensure that it is up-to-date.
* Mailmap handling APIs have been introduced, and the new commit APIs
`git_commit_committer_with_mailmap` and `git_commit_author_with_mailmap`
will use the mailmap to resolve the committer and author information.
In addition, blame will use the mailmap given when the
`GIT_BLAME_USE_MAILMAP` option.
* Ignore handling for files in ignored folders would be ignored.
* Worktrees can now be backed by bare repositories.
* Trailing spaces are supported in `.gitignore` files, these spaces were
previously (and erroneously) treated as part of the pattern.
* The library can now be built with mbedTLS support for HTTPS.
* The diff status character 'T' will now be presented by the
`git_diff_status_char` API for diff entries that change type.
* Revision walks previously would sometimes include commits that should
have been ignored; this is corrected.
* Revision walks are now more efficient when the output is unsorted;
we now avoid walking all the way to the beginning of history unnecessarily.
* Error-handling around index extension loading has been fixed. We were
previously always misreporting a truncated index (#4858).
### API additions
* The index may now be iterated atomically using `git_index_iterator`.
* Remote objects can now be created with extended options using the
`git_remote_create_with_opts` API.
* Diff objects can now be applied as changes to the working directory,
index or both, emulating the `git apply` command. Additionally,
`git_apply_to_tree` can apply those changes to a tree object as a
fully in-memory operation.
* You can now swap out memory allocators via the
`GIT_OPT_SET_ALLOCATOR` option with `git_libgit2_opts()`.
* You can now ensure that functions do not discard unwritten changes to the
index via the `GIT_OPT_ENABLE_UNSAVED_INDEX_SAFETY` option to
`git_libgit2_opts()`. This will cause functions that implicitly re-read
the index (eg, `git_checkout`) to fail if you have staged changes to the
index but you have not written the index to disk. (Unless the checkout
has the FORCE flag specified.)
At present, this defaults to off, but we intend to enable this more
broadly in the future, as a warning or error. We encourage you to
examine your code to ensure that you are not relying on the current
behavior that implicitly removes staged changes.
* Reference specifications can be parsed from an arbitrary string with
the `git_refspec_parse` API.
* You can now get the name and path of worktrees using the
`git_worktree_name` and `git_worktree_path` APIs, respectively.
* The `ref` field has been added to `git_worktree_add_options` to enable
the creation of a worktree from a pre-existing branch.
* It's now possible to analyze merge relationships between any two
references, not just against `HEAD`, using `git_merge_analysis_for_ref`.
### API removals
* The `git_buf_free` API is deprecated; it has been renamed to
`git_buf_dispose` for consistency. The `git_buf_free` API will be
retained for backward compatibility for the foreseeable future.
* The `git_otype` enumeration and its members are deprecated and have
been renamed for consistency. The `GIT_OBJ_` enumeration values are
now prefixed with `GIT_OBJECT_`. The old enumerations and macros
will be retained for backward compatibility for the foreseeable future.
* Several index-related APIs have been renamed for consistency. The
`GIT_IDXENTRY_` enumeration values and macros have been renamed to
be prefixed with `GIT_INDEX_ENTRY_`. The `GIT_INDEXCAP` enumeration
values are now prefixed with `GIT_INDEX_CAPABILITY_`. The old
enumerations and macros will be retained for backward compatibility
for the foreseeable future.
* The error functions and enumeration values have been renamed for
consistency. The `giterr_` functions and values prefix have been
renamed to be prefixed with `git_error_`; similarly, the `GITERR_`
constants have been renamed to be prefixed with `GIT_ERROR_`.
The old enumerations and macros will be retained for backward
compatibility for the foreseeable future.
### Breaking API changes
* The default checkout strategy changed from `DRY_RUN` to `SAFE` (#4531).
* Adding a symlink as .gitmodules into the index from the workdir or checking
out such files is not allowed as this can make a Git implementation write
outside of the repository and bypass the fsck checks for CVE-2018-11235.
Pyro 4.75:
- fixed distributed-mandelbrot example to actually run multiple concurrent calculations.
- CI build process now using more modern Python versions.
- missing API method doc added on NameServer.count()
This update was provided by Thomas E. Dickey in private email.
2018/03/06
+ update versioned-symbol list for reRegisterCDKObject (prompted by
Debian #892114, which adopted a different set of symbol versions
such as "5.0.20161120", cf: 2014/11/06).
+ updated configure macros, from lynx development: CF_CURSES_FUNCS,
CF_CURSES_LIBS, CF_MAKEFLAGS, CF_NCURSES_CONFIG, CF_SHARED_OPTS
+ update config.guess, config.sub
2017/12/09
+ updated ftp url in test-packages, etc.
+ updated configure macros CF_CC_ENV_FLAGS, CF_SHARED_OPTS
+ update config.guess, config.sub
2017/09/18
+ updated configure macros:
+ CF_ADD_CFLAGS improve formatting of generated lists using
CF_APPEND_TEXT
+ CF_CC_ENV_FLAGS - two changes
a) revise the expression generating $cf_flags to actually work when
there is more than one option.
b) correct the parameter passed to CF_ADD_CFLAGS, which was the
whole list rather than the current parameter.
+ CF_CURSES_LIBS reorganize to handle the case where initscr is a
macro.
+ CF_NCURSES_CONFIG add check for term.h when using pkg-config
+ CF_NCURSES_VERSION use prototype for main
+ CF_SHARED_OPTS workaround for PGI compiler
+ CF_WITH_LIBTOOL use SIGQUIT(3) rather than SIGTRAP(5) in trap
commands. Fix a few places in configure/build scripts where
DESTDIR and rpath were combined.
+ update config.guess, config.sub
2016/12/10
+ improve formatting of manpages, using bullets
+ add -C and -R options to matrix_ex.c to exercise the col/row spacing
features of matrix widget.
+ modify matrix widget to highlight the current cell for the cases
when col/row spacing are greater than zero.
2016/12/04
+ cleanup change for color pairs in 2016/11/20
+ modify initCDKScreen() to simplify initialization of curses by
calling initscr() in this function after initializing the locale.
That fixes a problem using PuTTY with CDK when built using ncurses
(report by Marc Smith).
2016/11/20
+ fix warnings from cppcheck 1.76.1
+ updated configure macros:
+ CF_CC_ENV_FLAGS don't limit the check to -I, -U and -D options,
since the added options can include various compiler options before
and after preprocessor options.
+ CF_GNU_SOURCE recent glibc (Debian 2.23-4 for example) has
misordered ifdef/checks for new symbol _DEFAULT_SOURCE, producing
warning messages when only _GNU_SOURCE is defined. Add a followup
check to define _DEFAULT_SOURCE.
+ CF_LD_RPATH_OPT change FreeBSD to use -Wl,-rpath rather than -rpath
option. According to FreeBSD #178732, either works since FreeBSD
4.x; however scons does not accept anything except the -Wl,-rpath
form.
+ CF_PROG_LINT add cpplint to programs to use; drop ad hoc tdlint and
alint.
+ CF_WITH_NCURSES_ETC add check for ncurses pthreads
+ CF_XOPEN_SOURCE add "uclinux" to list of Linux's and use
_GNU_SOURCE for cygwin headers, tested with cygwin 2.3, 2.5
+ CF__ADD_SHLIB_RULES improve scripting for ldconfig to avoid warning
messages if no permissions
+ update config.guess, config.sub
> patches by Aarian P. Aleahmad:
+ modify encodeAttribute() to allow up to 256 color pairs.
+ corrected assignment in scroller_SetPosition(), to show highlighted
member.
+ improve the way attributes are applied to Mentry widgets.
+ improve Entry widget by using newwin rather than subwin, as well
as passing arguments to callback function.
2016/11/19
+ add reRegisterCDKObject()
2016/01/31
+ fix a few of the lintian errors in package/debian
+ fix some too-wide tables in manpages, which caused Debian lintian
errors.
+ take lower-limit's formatted length into account in slider, etc.,
(patch by Guido Meusch).
+ make similar repainting-fixes for radio.c and marquee.c
+ fix repainting of Scroll widget when it has no box-outline
(patch by Manuel Schmitz).
+ add highlight and callbackData members to CDKBUTTON, as well as
macros for setting/getting the highlight value. Use the highlight to
override the default A_REVERSE used in CDK button (patch by Aarian P.
Aleahmad).
+ fix two bugs in template.c (patch by Aarian P. Aleahmad):
+ in cleanCDKTemplate, fill all of the info string with nulls
+ in setCDKTemplateValue, call cleanCDKTemplate whether or not
the pointer for newValue passed by the caller was a null.
+ updated configure macros:
+ CF_LIB_PREFIX, CF_WITH_LIBTOOL, and CF_XOPEN_SOURCE, build-fixes
for OS/2
+ CF_XOPEN_CURSES, improve check, making it define NCURSES_WIDECHAR
if we happen to be building on a platform (such as OSX) where we do
not define _XOPEN_SOURCE or _XOPEN_SOURCE_EXTENDED
+ CF_WITH_VERSIONED_SYMS, avoid ncurses build error on ppc64
architecture the nm tool is reporting _is_missing in Data section
for ppc64 (by comparison ppc64le is reporting it in Text section)
+ update config.guess, config.sub
2015/09/28
+ build ".deb" test-package with ncurses6, using versioned symbols.
+ updated configure macros:
+ modifications from ncurses/xterm to allow alternate to /bin/sh for
configure-shell, while dropping support for non-POSIX shell such
as Solaris.
+ updated/integrated changes for versioned symbols from ncurses6.
+ CF_DISABLE_LIBTOOL_VERSION when using -version-info (the native
libtool mode), get the ABI_VERSION value from $VERSION (which comes
from CF_VERSION_INFO)
+ CF_ADD_INCDIR fix an infinite loop when the include-directory to be
added does not exist (Debian #786436)
+ CF_WITH_NCURSES_ETC add --with-screen option
+ CF_SUBDIR_PATH change this to a loop, adding /usr/pkg (NetBSD) and
/opt/local (Mac OSX)
+ update config.guess, config.sub
2015/01/03
+ modify cdk-config.in to work with systems where libdir is /usr/lib64
(patch by Peter Hyman).
2014/11/06
+ alter limit-check in setCDKLabelMessage to use the actual window size
rather than the label-array's latest size (prompted by suggestion by
Stuart Friedberg).
+ reset label pointer to 0 after freeing it during resizing in
setCDKLabelMessage (report/analysis by Stuart Friedberg).
+ fix most Coverity warnings, aside from demos using getenv.
+ correct dependency of dpkg/mingw test packages; only "ncurses6" is
used rather than "libncurses6".
+ change test-packages to use --with-shared rather than cdkshlib hack.
+ add configure options to implement symbol versioning/hiding:
--with-versioned-syms=X markup versioned symbols using ld
--with-export-syms=XXX limit exported symbols using libtool
+ updated configure macros:
+ CF_ACVERSION_CHECK -
+ work around another gratuitous incompatibility introduced in 2.69
(reported by Ross Burton, openembedded.org)
+ CF_ADD_CFLAGS - workaround for ash-shell with Minix 3.2
+ CF_ADD_LIBS -
+ workaround in CF_X_TOOLKIT uses pkgconfig, whose files generally
are using incomplete dependencies - in turn introducing lots of
duplication. filter out the duplicates.
+ CF_CHECK_CFLAGS - workaround for ash-shell with Minix 3.2
+ CF_CURSES_FUNCS -
+ improve workaround for weak-linkage, seems to fix tests with
NetBSD 6.1
+ CF_GETOPT_HEADER -
+ add NEED_GETOPT_H definition, since that's the only interesting
special case
+ CF_INTEL_COMPILER -
+ cleanup the -no-gcc option which was leftover from testing - prcs
does not build with this option.
+ CF_LIB_SUFFIX -
+ it is not necessary or even a good idea to make AIX's shared-library suffixes ".a" -- make it ".so" like everyone else (including the system's shared libraries).
+ CF_MAKEFLAGS -
+ workaround for GNU make 4.0 incompatibility with previous
releases.
+ CF_X_ATHENA - add --with-Xaw3dxft option.
+ CF_XOPEN_SOURCE -
+ add case for UnixWare (report/discussion with Mark Ryan).
+ Minix3.2 ifdef's the POSIX.1-2001 functions inside
_NETBSD_SOURCE, even though it was released 2012-02-29 - appease
it. At the same time, turn on the verbose flag to show that most
platforms need platform-specific define's to get POSIX (sic).
+ for Solaris (tested with gcc/g++ 3.4.3 on Solaris 10 and gcc/g++
4.5.2 on Solaris 11), suppress the followup check for defining
_XOPEN_SOURCE because it is not needed, as well as because g++
4.7.3 (no package, used in Sage for Solaris 10) has some
unspecified header breakage which is triggered by the duplicate
definition.
+ CF_X_TOOLKIT -
+ add workaround for breakage in XQuartz upgrades.
+ add 3rd parameter to AC_DEFINE for autoheader.
+ modify spec-file to work with OpenSUSE's customization of
_defaultdocdir, which puts documentation for most packages in
/usr/share/doc/packages/
+ update config.guess, config.sub
2014/01/18
+ fix memory leak in allocListArrays() in scroll.c (patch by Alexander
Gozman).
+ amend changes for alphalist in 2012/03/23, to make its "list"
parameter read/write so that the caller's copy can be sorted as
before.
+ add man/man2html.ignore, used when generating
http://invisible-island.net/cdk/manpage/
2014/01/01
+ improve limit-checks in trimCDKWindow() (patch by Tyson Nottingham).
+ updated configure script (further improvments for shared libraries,
and clang).
+ update config.guess
2013/11/17
+ fix dependencies of Debian MinGW packages.
2013/11/07
+ add scripts for testing cross-compiles to MinGW.
+ add new scroller.h to CDKHDR variable in Makefile.in, so it will be
installed (report by Aitor Atuin).
+ updated configure script (further improvments for shared libraries,
and MinGW).
+ update config.guess, config.sub
2013/09/01
+ add a limit-check in drawCDKSwindowList() (patch by Wang Weber).
+ refactor scrolling support from radio.c, scroll.c, selection.c as new
file scroll.c, making functions from macros which were in cdk_int.h.
This change also modifies header files to move common fields to a new
SCROLLER_FIELDS macro - this is a source-compatible change, but not
binary-compatible (patch by Corentin Delorme).
+ add FreeBSD port-files, for test-builds.
+ add --enable-rpath and --disable-rpath-hack options to configure
script.
+ deprecate the cdkshlib makefile target; it is not available if either
--with-libtool or --with-shared is given.
+ corrected Makefile.in permissions of cdk5-config script, which was
not executable; this did not affect packages (cf: 2011/05/17).
+ enable the configure --disable-libtool-version option by defining
LIBTOOL_VERSION in Makefile.in, so that the soname can be set or left
to libtool to manage.
+ add configure options for manipulating linker rpath feature.
+ improve configure options for curses variants by reusing macro
from ncurses-examples
+ add lint rule to makefiles
+ fix warnings from clang
+ adapt configure --with-shared option from ncurses.
+ updated configure script (mostly minor changes for autoheader).
+ update config.guess, config.sub
2012/03/23
+ use gmtime instead of localtime in a few places so that calendar
results are not offset by the hour of the day (report/analysis by
Alex Charis).
+ add configure option --enable-const, which defines, like
NCURSES_CONST, the symbol CDK_CONST which can be used to address
improved const checking while preserving source-compatibility.
+ revise copyChtypeList to correspond with copyCharList
+ use const in cdk_util function prototypes, similar "string" uses
to improve writable-strings warnings. Arrays of strings are not
addressed due to compatibility.
+ change document directory to /usr/share/doc
+ add configure --enable-hdr-subdir to control whether cdk.h should
be in /usr/include/cdk for example, or in /usr/include. Make the
default the latter, standard layout.
+ simplify dpkg script, provide only one library using ncursesw
+ updated configure script macros, many changes for portability.
+ add cdk_test.h to installed headers (Debian #500161). Resolution
of that bug report by the way did not actually install the requested
header file.
+ update config.guess, config.sub
2012/03/18
+ provide shlibs file in dpkg scripts.
2011/05/17
+ modify calendar widget to allow applications to override the choice
of the first day of the week, by setting the "weekBase" member of
the widget. The calendar_ex example demonstrates this using the
"-w" option (request by Alex Karev).
+ modify marquee widget so that changing its box flag will cause the
widget to be resized, e.g., after 2006/05/07 changes which caused the
example program to not display properly.
+ corrected example for cdk_display.3 manpage (patch by Loïc
Pefferkorn).
+ modify install rules to allow package scripts to specify that
libcdkw's header files go into /usr/include/cdkw, and its *-config
file is named "cdkw-config".
+ autoconf'd the actual name for ctags and etags.
+ modify cdkshlib rule in makefile to eliminate warnings by
dpkg-shlibdeps.
+ correct algorithm for leap year in calendar.c (report by Olaf
Seibert).
+ minor formatting of changelog to simplify extraction of credits.
2011/05/14
+ add dpkg scripts, for test-builds.
2011/05/13
+ drop cdk.spec, adapt 2-package rules from a Fedora spec file in
the package subdirectory.
+ drop mkdirs.sh script, use "mkdir -p".
+ updated configure script macros, many changes for portability.
These changes add "--with-pkg-config" and "--disable-libtool-version"
options.
+ update config.guess, config.sub
2010/11/07
+ indent using cdk-indent, from
http://invisible-island.net/cindent/
2009/02/15
+ add KEY_ERROR case to each widget to make vERROR events handled by
each.
+ modify scroller_SetPosition() macro to improve scrolling behavior
(patch by Ricardo Cantu).
+ add vERROR event type to EExitType enumeration, using this in
setCdkExitType() and the selection widget to handle errors (patch by
Ricardo Cantu).
+ improve manpage descriptions for writeCharAttrib and
writeChtypeAttrib (report by Knut Schwichten).
+ add EXTRA_LDFLAGS symbol to makefile rule for creating library,
in case options are needed (prompted by patch by Timothy Redaelli).
+ modify matrix.c to allow defining empty column or row titles by
passing a null pointer in the newCDKMatrix() call. Fix repainting
of column titles by first erasing the cell (patch by Vincenzo Romano).
+ regenerate configure script with autoconf 2.52 (patched) to make this
work in non-POSIX locales (report by Mart Stöör).
+ updated configure script macros, e.g., to ensure that options are
appended to $CFLAGS rather than prepended.
+ update config.guess, config.sub
2008/11/05
+ modify matrix widget so that if title, row-title, column-title or
box-border are suppressed, the widget will shrink the matrix rather
than leave those parts blank (request by Vincenzo Romano).
+ modify matrix_ex example to allow turning off title, column- and
row-headers using -t, -c and -r options, and changing sense of -S
option to allow turning off shadows.
+ fix a limit-check in getcCDKObject(), found with valgrind in
buttonbox_ex.
+ apply same limit-check to radio.c as from selection.c
+ fix a limit-check in selection.c (report by Robin Lee Powell).
+ add -f/-h options to examples/selection_ex.c to test change to
label.c
+ fix a case where focus would be lost on a selection widget if there
was also a label on the screen, and both were repainted (report
by Robin Lee Powell).
+ make CDK build/work with MinGW (patch by Gregory Sharp).
+ correct setCDKTemplateValue() logic, which caused the source to
be repeated (report/patch by Christian Gaida).
+ use prefix makefile-variable in DOCUMENT_DIR expression to allow
override of prefix at build-time (patch by Saurabh Nix).
+ increase a buffer size in calendar.c (Debian #452401).
+ allow widgets to create empty lists, a feature assumed by Harry
Brueckner's cpm program (reports by Lars Strand, Harry Brueckner).
+ modify Makefile.in for consistent usage of DESTDIR.
+ add cdk5-config script to install
+ updated configure script, e.g., tests for curses libraries.
+ update config.guess, config.sub
2006/05/07
+ reduce the number of calls on touchwin(), which is used mainly for
cleanup after moving a window.
+ improve focus in alphalist.c and fselect.c to ensure that the
dependent scroll widget highlights data after losing focus to the
entry widget (report by Harry Brueckner).
+ add getCDKScrollCurrentItem(), setCDKScrollCurrentItem(),
getCDKScrollCurrentTop() and setCDKScrollCurrentTop().
+ add getCDKFselectCurrentItem(), setCDKFselectCurrentItem(), use these
in fselect_ex.c to illustrate how to modify list displayed by
the fselect widget.
+ add getCDKAlphalistCurrentItem(), setCDKAlphalistCurrentItem(), use
these in alphalist_ex.c to illustrate how to modify list displayed by
the alphalist widget.
+ add copyCharList(), copyChtypeList(), lenCharList(), lenChtypeList().
+ fix misformatted cdk_display manpage, which did not show vINT
and some other data properly (report by Dominik Douville-Belanger).
+ split-out cdk_display.c to eliminate repeated logic in entry.c,
matrix.c and mentry.c, and implement hidden fields for the matrix
widget.
+ correct box-height for marquee widget. The box parameter was
previously ignored; this correction will make some applications no
longer show a box (report by Michael White).
+ modify logic for KEY_DC and KEY_BACKSPACE so the former only deletes
the current character, and the latter only deletes the previous,
rather than equating them. This affects alphalist, entry, mentry,
template (request by Harry Brueckner).
+ suppress conversion of control characters in getcCDKObject() if the
character is bound to another. This was last changed in 2004/8/24
(report by Harry Brueckner).
+ add check in adjustAlphalistCB() in case the list is empty (report by
Harry Brueckner).
2006/02/20
+ correct makefile dependency so $(MAN_DIR) and $(INCLUDE_DIR) are
created before headers.sed and manpage.sed, since headers.sh
relies on the existence of the destination directory (reports
by Marek Lipovean, Marcelo Goes, also Gentoo #123374).
2005/12/30
+ add some redundant pointer checks, e.g., to entry.c, to avoid core
dump if one tries building Cdk with NetBSD curses (see lib/32417).
+ split up traverseCDKScreen() to allow customized flavors of that to
be written in a calling application using the pieces:
traverseCDKOnce(), setCDKFocusFirst() (request by Jorgen Lundman).
+ restore assignment of selectedItem in setCDKRadioCurrentItem() which
was dropped in 2005/04/24 (report by Fu Steve X).
+ modify refreshCDKScreen() to ensure that only one widget will have
focus, i.e., the first which currently has focus, or if none, then
the first visible one (report by Fu Steve X).
+ use cleanCDKTemplate() consistently in the template widget, ensuring
that the editing position is updated, and that the proper length is
used when clearing memory (report by Fu Steve X).
+ modify calendar, radio, scroll, selection widgets so the cursor is
shown at the beginning of the selected item's row for better
accessibility (report by Fu Steve X).
+ add null-pointer check in setCDKViewerInfo() in case caller gives
too-large value for list size (report by Jorgen Lundman).
+ improve traverseCDKScreen() by updating curobj from the
getCDKFocusCurrent() function (patch by Jorgen Lundman).
+ add setCDKFocusCurrent() (patch by Jorgen Lundman).
+ add configure script option allowing manpage section to be changed
from "3" to other values such as "3CDK", e.g., for Debian.
+ modify getCDKRadioItems(), getCDKScrollItems() and
getCDKSelectionItems() to return just the list-size if the list
pointer is null.
+ correct highlighting of selected line in CDKSelection window when
the window is scrolled left/right (patch by Jorgen Lundman).
+ various manpage fixes (report by Jorgen Lundman).
+ change manpages to use ".XX" macro to indicate aliases, to make
the manpage more readable.
+ eliminate duplication between cdk_util.3 and cdk_misc.3 manpages
(dialogs belong in the former, for instance).
+ modify alphalist, itemlist, radio, selection and swindow to allow
creating a widget with an empty list (request by Harry Brueckner).
+ modify mentry.c case for KEY_RIGHT so one can move the cursor past
the end of the string to add new text (report by Harry Brueckner).
+ modify cdk_params.c to use strtol() rather than atoi() to allow
command-line parameters such as -h 0xffff for the slider examples.
+ modify gen-slider.c to use sprintf/strlen to obtain length of
formatted integer types since intlen() does not give correct result
for maximum value of unsigned type. Modify increment/decrement logic
to take into account unsigned types (report by Keith J Outwater).
+ modify cli examples to exit with 255 when reporting an error rather
than a -1 which is generally not portable.
+ fix several memory leaks exposed by valgrind in the example programs.
+ add configure --disable-leaks option to look for ncurses' debug
function _nc_free_and_exit(), using that to help with memory leak
checking. This uses a new header <cdk_test.h> which will not be
installed, since it is used only for testing in the build tree.
> patches by Phuah Yee Keat:
+ add an IsVisibleObj attribute to all CDK objects so the caller can
set some object to be invisible, and calling refreshCDKScreen
after that won't display it again, it enables one to dynamically
show or hide a particular widget based on user actions.
Note: this changes alignments in many of the structs from 5.0,
requiring an ABI bump.
+ improve string length-computation in entry.c, allowing a 1-char
field, and also allowing movement past end of text with KEY_END.
+ add setCDKRadioSelectedItem() and getCDKRadioSelectedItem().
+ fix some memory leaks by adding cleanCDKObjBindings() into all of
the _destroyXXX() functions, modify cleanCDKObjBindings() to free
and null (obj)->bindingList.
+ fix makefile for installing manpages when building outside of the
source directory (patch by Mike Castle).
+ remove obsolete lsm file
+ review/correct some functions listed in manpages but not implemented,
and the reverse (report by Rajat Das).
+ add setCDKMatrixCB() (report by 'zam).
+ updated configure script (mostly fixes related to CF_XOPEN_SOURCE).
+ update config.guess, config.sub
2005/04/24 - T.E.Dickey <dickey@his.com>
+ bump major version to 5 (overdue).
+ add built-in bindings for '<' and '>' to KEY_HOME and KEY_END
for radio.c, scroll.c, selection.c, swindow.c and viewer.c
(patch by Thorsten Glaser).
+ add manpages for some of the non-widget utilities:
cdk_compat.3, cdk_objs.3, cdk_params.3 and cdk_util.3
+ correct drawCDKTitle, which did not account for border-size in
vertical position of titles.
+ change addCDKScrollPosition() to not set the current item to the
beginning of the list.
+ add insertCDKScrollPosition(), to allow insertions before the current
item.
+ add a check in scroll.c to prevent overflow if the list is empty.
+ modify deleteCDKScrollItem() to ensure the current item is on a
valid position after the deletion.
+ modify setCDKScrollPosition() to avoid scrolling if the target is
already on the screen.
+ make similar simplifications to radio.c and selection.c as in scroll.c
+ simplify and make consistent bookkeeping in scroll.c using new
utility functions. As a result, addCDKScrollItem() and
deleteCDKScrollItem() update the size of the scrollbar toggle (report
by Fu Steve X).
+ improve resequence function from 2005/03/23 by preserving attributes
in the target chtype array.
+ modify scroll_ex.c, binding 'a', 'i' and 'd' to add, insert and
delete lines respectively (adapted from example by Fu Steve X).
+ modify makefile so that cdk_config.h (which is generated by the
configure script) is not removed by "make clean".
+ modify makefile to work around limitation of Solaris make program
which was confused by a header dependency in a "::" line (report by
Fu Steve X).
+ modify makefile and scripts for configure --srcdir (adapted from
patch by Mike Castle).
2005/03/23 - T.E.Dickey <dickey@his.com>
+ modify deleteCDKScrollItem() to resequence numbers (request by Fu
Steve X).
+ cleanup memory allocation in scroll.c, make addCDKScrollItem
reallocate the scroll widget's arrays (report by Fu Steve X).
2005/03/08 - T.E.Dickey <dickey@his.com>
+ correct logic of deleteCDKScrollItem(), which did not preserve the
final null-pointer at the end of the list (report by Fu Steve X).
+ add isCDKOBjectBind() to simply check if the given object/key
combination is bound, rather than invoke the bound function.
+ modify binding.c so that all of the functions share the same logic
for mapping the given object to the bindable object, e.g., the entry
widget for alphalist and fselect composite widgets. In particular,
checkCDKObjectBind() and getcCDKObject() did not use the same binding
data.
+ correct initialization of traverseCDKScreen(), which required two
tab keypresses to make the first traversal (report by Fu Steve X).
+ updated configure script checks for _XOPEN_SOURCE, etc.
+ update config.guess and config.sub
+ correct prototype shown in manpage for setCDKScroll() (report by
Stefan Heimann).
+ correct equivalent expressions in setCDKRadioItems() and
setCDKSelectionItems().
+ correct expression in setCDKScrollItems() which caused the updated
window to shrink by 2 lines (report by Stefan Heimann).
2004/12/24 - T.E.Dickey <dickey@his.com>
========================================
+ correct expression in CDKCalendarField from 2004/08/31 changes, which
caused it to show only 6 days/week, broken by a fix for
demos/appointment (reports/patches by Ryan Flannery, Greg Martin).
2004/11/07 - T.E.Dickey <dickey@his.com>
========================================
+ correct top-level Makefile.in to remove libtool's auxiliary files
in the "make clean" rule.
+ amend simplification of writeCharAttrib(), ensuring that attributes
passed in the chtype-string are not ignored (report by Benoit
Bidoggia).
2004/10/04 - T.E.Dickey <dickey@his.com>
========================================
+ correct logic of writeBlanks(), which did not check for malloc
failure and made an unnecessary call to freeChar().
+ simplify draw.c a little by using writeCharAttrib() and
writeChtypeAttrib() to implement writeChar() and writeChtype().
+ revert 2002/07/27 change that used waddchnstr() in writeChtype(),
since it does not render control characters (report by Mike Leib).
+ fix an infinite loop in viewer.c when displaying control characters
such as form-feed.
2004/08/31 - T.E.Dickey <dickey@his.com>
========================================
+ add a simple compatibility header (cdk_compat.h), which can be
put in an application's include-path when compiling old applications
against new/old Cdk.
+ updated libtool ABI to 2.0.0 since several items are added to CDKOBJS,
as well as cleanup of slider- and scale-header templates.
+ add check for ANSI compiler, needed for example with HPUX 10.20.
+ ifdef'd out nonfunctional saveData and refreshData methods of entry
and itemlist widgets.
+ moved functions for setting background color or attribute into
CDKOBJS.
+ moved pre- and post-processing data into CDKOBJS, changing the
functions that set those per-widget into macros using cdk_objs.c
+ modify scale and slider widgets to allow the user to directly modify
the value by typing over it (request by Keith Outwater).
+ add slider widgets for types float, unsigned.
+ add scale widgets for types double, unsigned.
+ add script gen-scale.sh, and templates (e.g., gen-scale.c,
gen-scale.h) to allow easy generation of scale and slider widgets of
various types. Use this to replace the existing CDKSCALE, CDKFSCALE,
CDKSLIDER widgets (discussion with Keith Outwater).
+ adapt fix from dialog for porting getmaxx(), etc., to systems such
as HPUX which do not provide these legacy definitions.
+ remove duplicate vinstall.c from examples directory.
+ modify install scripting to translate generated names in cdk_config.h
to add "CDK_" prefix to most, reducing name-pollution. These names
are used to allow applications to compile against the Cdk header
files, but are otherwise of no general interest. In particular,
"PACKAGE" is no longer conflicting (report by Phuah Yee Keat).
+ add earlyExit member to CDKOBJS, using this to implement a method
for applications to specify whether the widget's exitType should
be modified after calling checkCDKObjectBind(), and what value
(discussion with Bernhard Walle, comparing with NetBSD variation).
+ correct logic in calendar widget for decrementing day- and
month-values.
+ modify treatment of exitType field so it is only set to vESCAPE_HIT
if an escape character was received. Hide most of the internal
details of exitType, making it available as an object value (but
retaining the widget field to ease upgrading old applications).
+ implement shadow option for newCDKMarquee().
+ rewrite activateCDKMarquee(), eliminating an infinite-loop bug
found in traverse_ex.c, as well as making it work properly with and
without box-outline.
+ modify deleteCursesWindow() to call eraseCursesWindow(), so that
deleting an object will also erase it, following the various manpages
comment about removing the object from the screen (report by
Mukovoz I.S.).
+ correct positionCDKObject() for CDKSCREEN's which do not happen to
be the same size/shape as stdscr.
+ change layout of menus to account for parent window's origin
since subwin() since uses absolute screen position (report by "Anna"
w/o a return address).
+ correct off-by-one in positionCDKObject() which prevented user from
reaching the right- and bottom-margins.
+ fix a few limits on sprintf's involving strings.
+ eliminate fixed array limit MAX_OBJECT in CDKSCREEN.
+ use CTRL() macro consistently in preference to CONTROL().
+ remove delwin(stdscr) from example programs since it is both unneeded
and nonportable.
+ use EXIT_SUCCESS and EXIT_FAILURE consistently in example programs.
+ remove all KEY_xxx symbols which are in X/Open curses from curdefs.h
+ remove all ACS_xxx symbols from curdefs.h
+ remove all A_xxx symbols from curdefs.h
+ add/use isChar() and CharOf() macros to get rid of A_CHARTEXT usage.
+ fix menus to allow them to scroll if there are too many entries to
fit on the screen.
+ collect most uses of touchwin/refresh into new function
refreshCDKWindow().
+ clear background of menu windows, in case they are drawn over another
widget.
+ correct length of title in menu if more than one is placed on the
right side of the screen.
+ add getcCDKBind() function, to which keys can be bound for simple
translation of the inputs via getcCDKObject(). Use this in
examples/traverse_ex.c to bind F1 to menu.
+ eliminate mapChtype() function, since it could conflict with curses'
definitions. Use the given key value instead, since it is always
positive.
+ use KEY_MAX in preference to MAX_BINDINGS symbol.
+ eliminate internal use of literal backspace, DEL, tab, newline and
carriage-return constants, etc., by mapping them to KEY_BACKSPACE,
KEY_DC, KEY_ENTER, etc., in getcCDKObject().
+ modify examples and demos to read input using getcCDKObject(), to
solve problems with stdscr refresh overwriting the widgets.
+ modify matrix.c and menu.c to read input using getcCDKObject(), like
all of the other widgets.
+ rewrote examples/traverse_ex.c to use menus to select the left,
center and right widgets used for demonstrating traversal.
+ modify traversal to update object focus properly if a menu action
removes or moves the object associated with the focus.
+ cleanup menu in traverse.c if escape character is used to cancel it.
+ move curs_set() calls out of focus/unfocus functions, into traverse.c
+ remove the SIGBUS/SIGSEGV handler, since it is redundant.
+ updated configure script, e.g,. macros CF_ADD_CFLAGS,
CF_CHECK_CACHE, CF_GCC_WARNINGS, CF_NCURSES_LIBS, CF_PROG_EXT,
CF_WITH_DBMALLOC, CF_WITH_DMALLOC, CF_WITH_LIBTOOL, CF_WITH_WARNINGS,
CF_X_ATHENA, CF_X_TOOLKIT.
+ update config.guess, config.sub
> fixes for fselect.c by ewigg (Ed Wigg):
+ add a range check to ensure that filename completion at the end of
the list does not reference past the end of the list.
+ correct the value returned from filename completion (fixes in
2002/07/27 mistook an assignment that removed the last character
of the result - it is actually used to trim the "/", "@" or similar
character from the displayed filename).
+ remove an unnecessary if statement.
> patches by Phuah Yee Keat:
+ enable focus in mentry.c, radio.c
+ implement unfocus in entry.c
+ implement focus/unfocus in mentry.c, template.c
+ add setCDKRadioCurrentItem() and getCDKRadioCurrentItem().
+ improve entry.c: When the user types until the last character, do
not shift the cursor to one character beyond the end of the maximum
value allowed in the field, that will create an extra '.' that will
give the user an impression that he can still enter more characters,
when he actually can't.
+ fix two core dumps with Solaris curses in scroll.c:
+ On solaris curses, just pressing the "down" key on a scroll list
will coredump, on certain sizes of the scroll list. On my
fullscreen test, it will coredump on any number of items unless if
the number of items is a multiple of 5. I assume that it's because
that under certain conditions, the togglePos actually exceeds the
boundary at the end of the scroll bar. Does not happen in ncurses.
+ On solaris curses, press 'G' will coredump.
Does not happen in ncurses.
+ make wording in COPYING consistent with other fixes from 1999/05/15
(report by Ahmad Attia).
2003/12/10 - T.E.Dickey <dickey@his.com>
========================================
+ bump version to 4.9.11 (corresponding source from Mike Glover added
install.sh to tarball; no other source changes were made).
+ rename "install.sh" to "install-sh" to work around bugs in certain
make-programs.
+ allocate marker[] array in calendar dynamically. Reduce
corresponding array limits to reasonable values.
+ add getCDKCalendarMarker()
+ correct seconds in calendar's return value.
+ eliminate fixed array limits from dialog widget.
+ eliminate fixed array limits from label widget.
+ eliminate fixed array limits from selection widget.
+ eliminate fixed array limits from viewer widget.
+ eliminate fixed array limits from buttonbox widget.
+ eliminate fixed array limits from matrix widget. Passing around
1000x1000 arrays was inefficient, and caused core dumps in the Perl
binding for this widget.
+ correct one of the attrbox() calls in drawCDKMatrixCell(), which used
a left-tee where a right-tee was needed (report by William L Davis).
+ add setCDKMatrixCells(), redefining setCDKMatrix() as a macro to
call it.
+ add cleanCDKMatrixCell().
+ correct position for right-aligned menus, which was off by one from
2003/11/30 changes (report/patch by William L Davis).
2003/12/01 - T.E.Dickey <dickey@his.com>
========================================
+ correct logic in char2Chtype() for <#UL>, <#UR> and <#LR>, broken in
1999/06/05 (report by William L Davis).
2003/11/30 - T.E.Dickey <dickey@his.com>
========================================
+ remove borderSize parameter from alignxy().
+ modify all widgets to account for borderSize consistently, allowing
one to display a widget that uses the full screen size (report by
Phuah Yee Keat <yk.phuah@nestac.com>).
+ add cdk_params.c, use this to simplify cli programs and add getopt
processing systematically to the demos and examples.
+ correct an off-by-one in baseName() that would return the slash
character in the result.
+ add setCDKCalendarMonthsNames() and setCDKCalendarDaysNames (patch
by Stanislaw Bierowka <staszek@pecet.com.pl>).
+ split-out several files from draw.c since they are wrappers for
widgets rather than drawing functions. Doing this reduces the
executable size: get_index.c, get_string.c, popup_dialog.c,
popup_label.c, select_file.c, view_file.c and view_info.c
+ eliminate static MAX_LINES limit from graph-widget values.
+ eliminate static MAX_LINES limit from widget titles.
+ updated configure script, improved checks for curses functions.
+ update config.guess, config.sub
2003/11/24 - T.E.Dickey <dickey@his.com>
========================================
+ display a "processing..." message in setCDKViewerInfo while building
the internal data structures (request by Mike Leib).
+ modify viewer widget to compute the total number of lines to display,
making it independent of the listSize parameter.
+ modify viewer widget to accept a negative listSize parameter,
making it count the length of list[], ending with a null.
+ modify viewer_ex, adding -f, -i and -l options. The -f option
bypasses the fselect widget, specifying the filename directly.
The -i option tells whether to interpret embedded markup, and
the -l option tells viewer_ex to load the file using an embedded
link.
2003/11/19 - T.E.Dickey <dickey@his.com>
========================================
+ modify searches in viewer widget to allow for overlapping partial
matches, e.g., if the pattern is "00A", it will find the match in
a line consisting of "000A". Also corrected logic to matches can
extend to the end of a line.
+ add 'N' to viewer to implement reverse search.
+ modify ':' command in viewer to start with current line number
rather than 0. Also adjust the size of the scale widget to allow
for very large line numbers, e.g., more than 5 digits.
+ remove an obsolete limit-check in viewer widget that limited view
to 4996 lines, fix a few off-by-one indices.
2003/11/18 - T.E.Dickey <dickey@his.com>
========================================
+ correct viewer widget, making it interpret tabs and non-printing
characters for the non-interpreted file viewer case. The curses
library cannot display control characters in chtype's.
+ add cleanCDKViewer().
+ rename a few .itemCount members to .listSize for consistency.
+ eliminate static list-size limit MAX_LINES from swindow, viewer
widgets. Renamed .info, .infoPos, .infoLen to .list, .listPos and
.listLen members to be consistent with other widgets.
2003/11/16 - T.E.Dickey <dickey@his.com>
========================================
+ suppress "." from fselect listing, since it was not useful.
+ eliminate static list-size limit MAX_ITEMS from alphalist, fselect
itemlist, radio, scroll and selection widgets (request by Mike Leib).
+ change functions that set line-drawing characters to macros, mapping
those to method calls in CDKOBJS.
+ add setCDKEntryBox().
+ add setCDKMarqueeBox() and getCDKMarqueeBox().
+ add setCDKMatrixBox() and getCDKMatrixBox().
+ adjust some title lines to be offset by the borderSize rather than
a hardcoded "1" (report by Max Mikhanosha).
+ strip trailing newlines from text read via pipe in execCDKSwindow(),
lost in original cleanup (report by Max Mikhanosha
<max@openchat.com>).
2003/04/18 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ for variants built with ncursesw and pdcurses, name the libraries
"-lcdkw" and "-lcdkX" respectively.
+ add a missing assignment to store the result in _injectCDKFScale()
(report by Barry Davis <bdavis@eurologic.com>).
+ fix missing definition of mvwhline(), mvwvline() in pdcurses.
+ add a .c.i rule in top-level makefile
+ fix uninstall rule, was missing a line-continuation.
+ fix several prototypes in manpages which did not match header files
(reported by Lucas Gonze <lucas@gonze.com>).
+ fix a few compiler warnings, e.g., by parentheses in
drawCDKEntryField() and drawCDKMatrixCell().
+ updates to configure script macros
+ add --with-ncursesw option.
+ add --with-XawPlus option.
+ add --with-curses-dir option.
+ modify CF_DISABLE_ECHO to make libtool quiet also.
+ use AC_PROG_PATH to find libtool; show the version which is found.
+ change sed delimiter to '%' to accommodate AFS.
+ improve/correct CF_HEADER_PATH, CF_LIBRARY_PATH to cover special
cases of ncurses/ncursesw configurations.
+ change ordering of options in CF_ADD_CFLAGS, CF_ADD_CPPFLAGS,
CF_INCLUDE_DIRS.
+ workaround gcc 3.x defects in CF_ADD_INCDIR.
2002/08/09 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ fix entry, matrix, template, viewer widgets to display 8-bit input
characters (reported by Bernhard Walle <bernhard@bwalle.de>).
+ modify manpage install to create links for each function name listed
in the NAME section.
+ correct cursor location in dialog's radio-box, which was left on the
separator line (reported by Peter Farley <pjfarley3@yahoo.com>)
2002/07/27 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ several changes to make destroyCDKScreenObjects() and
destroyCDKScreen() actually work (needed for perlcdk):
+ record all objects and screens created/destroyed, in cdkscreen.c
+ reimplement destroyCDKObject() by a function _destroyCDKObject(),
which first does an erase for the given object, then calls the
destroy method, and finally frees the object.
+ add a check in each erase-method to ensure that the object is still
valid.
+ add check in setCDKGraphValues() to ensure that X and Y scales are
nonzero, since they are used as denominators. This makes perlcdk's
graph example work.
+ add configure check for curses feature which would allow one to move
a subwindow, or (in the case of NetBSD curses) at least compile.
+ add configure check and fallback for addchnstr() to accommodate
NetBSD's partial implementation of curses.
+ move version information to VERSION file.
+ add --with-libtool configure option
+ make most wgetch() calls use the object's inputWindow via the
getcCDKObject() function.
+ improve type-checking and array-limits in cdkscreen.c
+ remove cdktype member from CDKSCREEN since it is redundant.
+ eliminate several fixed-buffers with new function writeBlanks().
+ interpret home/end keys in entry widget.
+ warn about special keys such as insert which are not recognized in
alphalist, entry, matrix, mentry, template (it was using the low 8
bits of those, inserting that).
+ rewrote/simplified dirName().
+ rewrote/simplified baseName().
+ eliminate fixed-size buffers in fselect.c
+ correct a couple of places where fselect.c freed constant memory.
+ correct an unterminated string in fselect.c tilde-expansion, and use
$HOME if no account name is given.
+ simplified several functions using mvhline(), mvvline() and
mvaddchnstr().
+ add vFSCALE as a valid object type in cdkscreen.c
+ modify moveCursesWindow(), which did not work with ncurses after
2000/9/15 changes to use mvwin() in preference to directly modifying
the _begx/_begy members of WINDOW. That made position_ex not work.
The change was originally for NetBSD's curses implementation which
does not move derived windows properly anyway.
+ simplify calls to moveCursesWindow() by moving null-pointer check
inside that function.
+ change tab-expansion in char2Chtype() to expand based on the current
length of the string rather than always to 8 columns.
+ correct limit-checks in stripWhiteSpace()
+ interpret back-tab in buttonbox.c and dialog.c inject-methods for
symmetry with tab.
+ corrected return-values of button, matrix, scale widgets to match
documentation as well as to conform with other widgets.
+ reorganized inject methods (which may return data of different types)
to return the actual data in an area of the widget, and defined macros
to preserve source-compatibility.
+ rewrote initCDKColor() to check if color is available before trying
to initialize it, and to use the terminal's actual number of colors
in making color pairs.
+ use 2-digit fields in bind_ex.c for time, date.
+ modify matrix.c to add borderSize before the column titles, to
match the change to box layout.
+ modify matrix_ex.c to consistently center row-titles. Some were
centered, some were right- and some left-justified. The change to
justifyString() produced an odd effect.
+ add functions
CDKVersion()
chtype2String().
> patches by Tim Moloney:
+ added a setCDKxxxBackgroundAttrib() function to all the widgets.
This function takes a chtype. The setCDKxxxBackgroundColor() still
exists and converts from a character string to a chtype, but it now
calls the new function to eliminate duplicate code.
+ fix minor bugs in marquee_ex and radio1_ex.
+ fix an off-by-one error in the dialog widget when it is not drawing
its box. The buttons were displayed one line too high.
+ add object type to each widget.
+ correct _drawCDKEntry(), which did not account for whether a box was
used when computing layout.
+ change moveCDKButton() from a function to a macro using
moveCDKObject().
+ add functions
popupLabelAttrib()
setCDKButtonboxButtonAttrib()
setCDKEntryHighlight()
> integrated/adapted changes by Grant Edwards:
+ make the destroy function in each widget a method in CDKOBJS.
+ make the inject function in each widget a method in CDKOBJS.
(this was incomplete, and did not provide for different return-types)
+ add focus, unfocus, refreshData, saveData methods and supporting
data to CDKOBJS (not all widgets implement these methods). See
entry.c, itemlist.c, selection.c for example.
+ store a borderSize value in CDKOBJS for each widget, which is used to
reserve space for a box/border around each widget if the Box
parameter is true when creating the widget. Several related changes
also made, including modifying the alignxy() interface to add
a borderSize parameter.
+ modify justifyString() to not subtract 1 on each side, since that
is generally assumed to be done to compensate for boxes drawn around
the text.
+ change drawCDKItemlistField() to add a highlight parameter.
+ change the label window to a subwin() in entry.c
+ hide cursor while in popupLabel() function.
+ simplified scroll.c, a little.
+ add files
button.c
examples/radio1_ex.c
examples/traverse_ex.c
+ added functions:
destroyCDKScreenObjects()
getCDKSelectionCurrent()
setCDKSelectionCurrent()
getCDKScrollCurrent()
setCDKScrollCurrent()
destroyCDKScreenObjects()
cmpStrChstr()
chstrncpy()
+ removed these functions:
setCDKEntryBox()
2002/04/30 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ correct parsing of <I=xx> in char2Chtype() where "xx" contains digits
(patch by Robert R Landon <rl180001@exchange.DAYTONOH.NCR.com>).
+ updated cdk.spec for RPM (patch by Vladimir Kondratiev
<vladimir.kondratiev@intel.com>).
+ introduce CDKINCLUDES ifdef's so that any of the header files may
be included separately. Previously only <cdk.h> could be included
due to interdependencies among the headers.
+ add some #undef's to cdk.h in case curses.h includes term.h producing
a symbol conflict (reported by Kenneth Pronovici
<pronovic@skyjammer.com>).
+ miscellaneous updates to configure script, including workarounds for
incompatibilies in autoconf 2.5x.
2002/02/25 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ add cdk_process manpage.
+ remove redundant description of bindCDKObject() from several manpages.
+ add rcs identifiers to header files.
+ add ifdef's in each header file for C++, to make the C externs link
properly without requiring the application to declare them (reported
in comp.unix.programmer newsgroup by <bigslick_2k@hotmail.com>).
+ correct typo in template.c introduced in 2000/01/16 substitutions
to use macro isPlateChar() which made templates not work with
interspersed punctuation (reported by jiny <jiny@ynmail.com>).
2001/12/30 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ remove some redundant wrefresh() calls in various widgets.
+ correct an uninitialized pointer in cli/cdkalphalist.c
+ modify cli/samples/alphalist.sh to check for non-empty return from
the selection rather than hang attempting to find that account.
+ remove -B option from cli/samples/alphalist.sh since it should have a
value, but does not.
+ corrected some display-limits in writeChtype() and
writeChtypeAttrib().
+ modify CDKreadFile() to trim newlines from file as read, making it
more like the original readFile(). This is needed to prevent the
trailing newlines loaded into label widgets from clearing the rest
of the line when they are drawn.
+ add floatized-scale widget (Lutz Mueller <urc8@rz.uni-karlsruhe.de>).
+ modify headers.sh script to remove gzip'd versions of the manpages
just in case some were previously installed that way, i.e., by
hand. The gzip'd version would be found instead of the new install.
(prompted by a report by Ron Poulton <thok@technologist.com>).
+ correct typo in uninstall rule for manpages which made
"make installCDKHeaderFiles" remove the manpages after installing.
2001/04/21 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ add an uninstall rule.
+ move the installed documentation to /usr/local/doc/cdk (it does not
belong in /usr/local/include/cdk).
+ modify install rules so that references to header files such as cdk.h
are transformed to <cdk/cdk.h>, which matches the actual install
location (reports by Pawel Gajda <pawelg@obop.com.pl>, Carlos Alberto
Pereira Gomes <capgomes@usa.net> and Ron Poulton
<thok@technologist.com>, who found that Cdk's menu.h conflicts with
ncurses' menu.h when building the Perl interface).
+ correct cli examples' callbacks, which did not return a value.
+ update config.guess and config.sub
+ modify CF_CURSES_LIBS to allow build with SunOS 4.x 5lib curses.
+ split out CF_CURSES_CPPFLAGS from CF_CURSES_LIBS to allow an interim
check if the curses implementation is really ncurses.
+ modify some configure script macros to work when the curses header
file is not <curses.h>, e.g., <ncurses.h>.
+ modify configure script macros to avoid using changequote(), which
is broken in the current autoconf alpha versions, e.g., 2.49d.
+ change configure script macros to use $CPPFLAGS consistently for
preprocessor options, and $CFLAG for other compiler flags.
+ modify several configure script macros which checked for $GCC, to
ensure it is not actually the compiler name versus an existence
check.
2001/01/06 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ reverted part of 1999/6/5 change, allowing callback functions to
return a value. Note that this makes PROCESSFN and BINDFN use
the same prototype (report by Ian Eure <ieure@insynq.com>).
+ SCO OpenServer does not define S_IFSOCK
2000/09/23 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ change literal 48's in calendar.c to '0'.
+ eliminate nonprinting/nonspace characters using macro CTRL().
+ integrated new examples into makefiles.
+ use raiseCDKObject_ex.c and lowerCDKObject_ex.c to debug/fix the
raiseCDKObject() and lowerCDKObject() functions which shared the same
defect in 4.9.9 (the code did not properly update two objects, but
modified screenIndex of one twice).
+ modified cli programs to work with CDKreadFile(), CDKsplitString()
and CDKcountStrings() since readFile() and splitString() are not
provided in this version.
> reviewed/integrated changes from Mike Glover's 4.9.10 (August 2000):
+ add examples/raiseCDKObject_ex.c, examples/lowerCDKObject_ex.c
+ add cli subdirectory
+ modify itemlist.c to make labels one cell wider.
+ did not use changes to cdkscreen.c (see 1999/5/15).
+ did not use casts to unsigned char, since those are incorrect
(they are casting chtype's which are wider than a char).
2000/09/15 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ add/use configure check for some curses functions/macros which use
internals of the WINDOW struct, which is opaque on NetBSD (patch by
Simon Burge <simonb@wasabisystems.com>).
+ update autoconf scripts (config.guess, config.sub, macros
CF_CURSES_LIBS, CF_UPPER, CF_X_ATHENA) to my 20000819 autoconf patch.
+ revised man-pages: reorder so that functions are listed
alphabetically within the NAME, SYNOPSIS, DESCRIPTION sections, the
prototypes shown only in the SYNOPSIS section (and formatted for
readability), remove excess wording and convert as needed to use tbl.
2000/08/28 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ add cdk_position.3 man page.
+ rename cdk_cdk.3 to cdk.3
2000/08/20 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ remove obsolete comments from manpages telling users to define
NCURSES for that library. The configure script creates cdk_config.h,
which has settings as needed.
2000/08/20 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ fix some array-overruns in viewer.c if it happens to load a binary
file.
+ fix symbol conflict with newkey in waitCDKLabel(), as well as keycode
truncation in that function.
2000/06/28 - T.E.Dickey <dickey@herndon4.his.com>
=================================================
+ add RPM spec-file (patch by Wai-Sun Chia <waisun.chia@msa.dec.com>).
+ add Linux-specific makefile rule for generating a shared library
(patch by Pawel Gajda <pawelg@obop.com.pl>).
+ eliminate fixed-length lists assumed in getDirectoryContents() using
new function CDKgetDirectoryContents().
+ eliminate fixed-length lists assumed in readFile() using new function
CDKreadFile().
+ remove unused substring().
+ use qsort-wrapper sortList() instead of quickSort().
+ change configure.in to avoid having configure script check for X
libraries as a side-effect of adding tests for PDCurses.
+ updates to configure script macros:
CF_CURSES_FUNCS, CF_FIND_LIBRARY, CF_HEADER_PATH, CF_LIBRARY_PATH,
CF_NCURSES_LIBS and CF_XOPEN_CURSES
+ update config.guess, config.sub
2000/04/09 - T.E.Dickey <dickey@clark.net>
==========================================
+ modify newwin() call in subwindow_ex.c to account for actual screen
size rather than assuming 25 lines (reported by Gary Funck
<gary@Intrepid.Com>).
+ add CF_X_ATHENA and CF_X_TOOLKIT configure macros for --with-pdcurses
option, needed if the Xcurses or dependent libraries are static
rather than shared.
+ correct typo in configure check for HPUX 11.x (reported by Bjorn
Helgaas <helgaas@rsn.hp.com>).
2000/02/18 - T.E.Dickey <dickey@clark.net>
==========================================
+ add case for HPUX 11.x use of cur_colr library (reported by
Bjorn Helgaas <helgaas@rsn.hp.com>).
+ add configure option --with-pdcurses, to link with the X11 version
of PDCurses.
+ eliminate quoted includes, in favor of bracketed form.
+ ifdef'd limits.h, moving that into cdk.h with a fallback definition
for INT_MIN and INT_MAX.
+ minor fixes for building with SunOS 5lib version: configure check
for getopt variables, correction to demos/Makefile.in
2000/01/17 - T.E.Dickey <dickey@clark.net>
==========================================
+ add lib-prefix and executable suffix checks to configure script for
port to OS/2 EMX.
+ add configure check for lstat().
2000/01/16 - T.E.Dickey <dickey@clark.net>
==========================================
+ drop dependency on usleep(), using napms() which is standard with
SVr4 curses.
+ rewrote mode2Char(), making it table-driven and splitting out
mode2Filetype() to make porting simpler, by putting ifdef's for
S_ISSOCK in one place only.
+ use new freeCharList() to reduce clutter.
+ eliminate casts of NULL, to reduce clutter.
+ change several uses of control characters in source to use CONTROL()
macro.
+ correct format of date shown in bind_ex.c
+ correct nonstandard getcwd() usage in fselect.c
+ change demo and example makefiles to not strip executables.
+ modify demo/Makefile.in to work around Solaris' make program which
does not process ".c" rule as desired.
2000/01/08 - T.E.Dickey <dickey@clark.net>
==========================================
+ fix compiler warnings with Solaris cc.
1999/12/19 - T.E.Dickey <dickey@clark.net>
==========================================
+ updated email and url for Mike Glover based on 4.9.9 version dated
1999/7/29.
19.0.3:
Bug Fixes
- Fix an IndexError crash when a legacy build of a wheel fails.
- Fix a regression introduced in 19.0.2 where the filename in a RECORD file
of an installed file would not be updated when installing a wheel.
2.0.9:
Bug fixes:
- Fixed Application.run_system_command on Windows.
- Fixed bug in ANSI text formatting: correctly handle 256/true color sequences.
- Fixed bug in WordCompleter. Provide completions when there's a space before
the cursor.
Also upgrade the various rust crates according to new requirements.
Sadly, no change log available upstream that I can find...
(The old version uses an old libc crate, which hasn't been adapted
for NetBSD/aarch64.)
Changelog:
mdds 1.4.3
* documentation
* added details on how to use two type of iterators with
flat_segment_tree.
* added new section to describe how to use mtv::collection to iterate
through multiple multi_type_vector instances as a single collection
in the direction orthogonal to the direction of the individual
vectors.
* added new page for R-tree.
* flat_segment_tree
* fixed invalid memory access issue related to the swap() method which
previously did not swap the non-leaf node pool store. The invalid
memory access may occur after the contents of two instances get
swapped, one instance get destroyed then the caller calls
search_tree() on the other instance still alive.
mdds 1.4.2
* all
* fixed CXXFLAGS incorrectly being overwritten.
* addressed a number of Coverity issues.
mdds 1.4.1
* all
* fixed all warnings on shadowed variables.
* multi_type_matrix
* all of its walk() methods now return either a copied or moved
instance of the function object passed in as an input argument.
Previously these methods had no return values.
mdds 1.4.0
* rtree (new)
* new data structure designed for optimal storage and query
performance on multi-dimensional spatial data. The structure allows
storage of both point and extent-based boundaries as keys associated
with values.
* multi_type_vector
* mtv::elemnt_block now has the following methods: data(), cbegin(),
cend(), crbegin() and crend().
* multi_type_vector now has cbegin(), cend(), crbegin(), and crend()
methods.
* some unnecessary user-provided special members have been removed to
avoid warnings with -Wdeprecated-copy with GCC 9.
* multi_type_matrix
* all of its walk() methods now allow in-line lambdas to be used, by
not taking a reference of the function object parameters.
mdds 1.3.1
* flat_segment_tree
* fixed a bug that caused an assertion error when inserting a
out-of-bound segment whose start value equals the max key value.
mdds 1.3.0
* multi_type_vector
* changed the primary block array storage to remove additional
indirection, for improved memory locality.
mdds 1.2.3
* all
* changed the configure script to use --docdir unmodified.
* flat_segment_tree
* added a segment iterator whose node value consists of the start
and end keys and the value associated with each segment. its
start and end positions can be retrieved via begin_segment() and
end_segment() methods.
mdds 1.2.2
* flat_segment_tree
* fixed a bug that would cause segmentation faults with the insert()
method with out-of-bound segment value pair.
mdds 1.2.1
* multi_type_vector
* added size() method to the element block type, which returns the
actual size of the element block, instead of the cached size value
stored in the parent structure that stores the element block.
* fixed a double-deletion bug in the swap() method which would
triggered when used with a managed element block.
* mtv::collection
* fixed collection iterator's get() method to properly return values
from the boolean element block.
mdds 1.2.0
* packed_trie_map
* added begin() and end() methods that return read-only iterators.
* find() method now returns a const_iterator instance.
* prefix_search() method now returns a search_results instance that
can be iterated.
* null value no longer needs to be passed to the constructor.
* find() and prefix_search() now have a variant that can take a key
value that is of key_type directly.
* trie_map
* added begin() and end() methods that return read-only iterators.
* find() method now returns a const_iterator instance.
* prefix_search() method now returns a search_results instance that
can be iterated.
* null value no longer needs to be passed to the constructor.
* find(), insert, and prefix_search() now have a variant that can
take a key value that is of key_type directly.
* sorted_string_map
* fix build failure with _GLIBCXX_DEBUG defined.
* multi_type_vector
* remove compiler warning about shadowed variable.
* added a supplemental class mdds::mtv::collection which allows
multiple multi_type_vector instances of the same length to be
grouped together in order to iterate through their elements
sideways.
* a variant of advance_position() static method that takes
const_position_type has been added.
* const_position_type advance_position(const const_position_type& pos, int steps)
* multi_type_matrix
* matrix_position() is now a const method.
* the sub-matrix variant of walk() method now throws size_error
exception when invalid start and end positions are passed.
* slight performance improvement with the sub-matrix variant of
walk() method that involves multiple column traversal.
* added 2 new variants of walk() methods that allow parallel walking
with another matrix instance.
* template<typename _Func>
void walk(_Func& func, const multi_type_matrix& right) const
* template<typename _Func>
void walk(_Func& func, const multi_type_matrix& right, const size_pair_type& start, const size_pair_type& end) const
* improved performance of copy() and resize() methods.
* added a variant of copy() that takes an array of values.
* template<typename _T>
void copy(size_type rows, size_type cols, const _T& it_begin, const _T& it_end)
* integer type has been added to the list of types the matrix can
store. In conjunction with this change, what was formerly known
as the string trait structure is now known as the matrix trait,
which specifies the actual integer type the matrix stores.
* point_quad_tree
* search_result has been renamed to search_results.
IPython 7.3.0
IPython 7.3.0 bring several bug fixes and small improvements that you will
described bellow.
The biggest change to this release is the implementation of the %conda and
%pip magics, that will attempt to install packages in the **current
environment**. You may still need to restart your interpreter or kernel for the
change to be taken into account, but it should simplify installation of packages
into remote environment. Installing using pip/conda from the command line is
still the prefer method.
The %pip magic was already present, but was only printing a warning; now it
will actually forward commands to pip.
Misc bug fixes and improvements:
- Compatibility with Python 3.8.
- Do not expand shell variable in execution magics, and added the
no_var_expand decorator for magic requiring a similar functionality
- Add %pip and %conda magic
- Re-initialize posix aliases after a %reset
- Allow the IPython command line to run *.ipynb files
pytest 4.3.0:
Deprecations
* pytest.warns() now emits a warning when it receives unknown keyword arguments.
This will be changed into an error in the future.
Features
* Usage errors from argparse are mapped to pytest’s UsageError.
* Add the --ignore-glob parameter to exclude test-modules with Unix shell-style wildcards. Add the collect_ignore_glob for conftest.py to exclude test-modules with Unix shell-style wildcards.
* The warning about Python 2.7 and 3.4 not being supported in pytest 5.0 has been removed.
In the end it was considered to be more of a nuisance than actual utility and users of those Python versions shouldn’t have problems as pip will not install pytest 5.0 on those interpreters.
* With the help of new set_log_path() method there is a way to set log_file paths from hooks.
Bug Fixes
* --help and --version are handled with UsageError.
* Fix AssertionError with collection of broken symlinks with packages.
upstream changes:
* CVEs fixed in or before version 1.9: CVE-2018-20430, CVE-2018-20431, CVE-2017-15922, CVE-2017-17440
* upstream ChangeLog:
Sun 10 Feb 2019 05:05:22 PM CET
Added Danish translation.
Releasing GNU libextractor 1.9. -CG
Thu Dec 20 22:48:47 CET 2018
Fix#5493: possible out-of-bounds read in libextractor_common
in case of iconv() failure.
Fix#5494: NULL dereference in OLE2 extractor (for malformed input). -CG
Sun Dec 2 12:05:33 CET 2018
Fix#5488: do not export non-public functions from API. -CG
3.4.0:
Many changes have been made in the support for logging configurations:
- The log handler section types defined by the
ZConfig.components.logger package support additional, optional
parameters:
style
Used to configure alternate format styles as found in the Python 3
standard library. Four style values are supported:
classic (the default), format (equivalent to style='{'
in Python 3), template (equivalent to style='$'), and
safe-template (similar to template, but using the
string.Template method safe_substitute method). A
best-effort implementation is provided for Python 2.
arbitrary-fields
A Boolean defauting to False for backward compatibility,
allows arbitrary replacement field names to be accepted in the
format string (regardless of the style setting). This
supports applications where log records are known to be generated
with additional string or numeric fields, at least for some
loggers. (An exception is still raised at format time if the
additional fields are not provided, unless the style value
safe-template is used.)
- The logfile section type defined by the ZConfig.components.logger
package supports the optional delay and encoding parameters.
These can only be used for regular files, not the special STDOUT
and STDERR streams.
- More validation on the parameters to the logfile and
email-notifier sections is performed early (at the construction of
the factory, rather than at creation of the logging handler).
This allows more checking of parameter combinations before any log
files are opened.
- The ZConfig.components.logger.handlers.log_format data type
function now supports formats that include numeric formatting for
levelno, and accept funcName as a valid log record field
(added in Python 2.6 and 3.1).
0.19.11:
IMPROVEMENTS
* Use fullname from gecos field, if available.
* Support GIT_AUTHOR_NAME / GIT_AUTHOR_EMAIL.
* Add support for short ids in parse_commit.
* Add support for prune and prune_tags arguments
to porcelain.fetch.
BUG FIXES
* Fix handling of race conditions when new packs appear.
Version 3.5.7:
This is a mostly a bug-fix release.
Fixes
* Regression: pathlib did not get patched in the presence of pathlib2
* fixed errors if running the PyCharm debugger under Python 2
Infrastructure
* do not run real file system tests by default
* make tests run if running python setup.py test under Python 2
Version 3.5.6:
Changes
* import external pathlib2 and scandir packages first if present
Version 3.5.5:
Fixes
* removed shebang from test files to avoid packaging warnings
Version 3.5.4:
New Features
* added context manager class Pause for pause/resume
Fixes
* fixed AttributeError shown while displaying fs in a failing pytest
in Python 2
* fixed permission handling for root user
* avoid AttributeError triggered by modules without __module__ attribute
Version 3.5.3:
This is a minor release to have a version with passing tests for OpenSUSE
packaging.
New Features
* automatically patch file system methods imported as another name like
from os.path import exists as my_exists, including builtin open
and io.open
Fixes
* make tests for access time less strict to account for file systems that
do not change it immediately
Version 3.5.2:
This is mostly a bug-fix release.
New Features
* added support for pause/resume of patching the file system modules
* allow to set current group ID, set current user ID and group ID as
st_uid and st_gid in new files
Fixes
* fixed using modules_to_patch
* fixed recursion error on unpickling the fake file system
* allow trailing path in add_real_directory
Version 3.5:
Changes
* This version of pyfakefs does not support Python 3.3. Python 3.3 users
must keep using pyfakefs 3.4.3, or upgrade to a newer Python version.
* The deprecation warnings for the old API are now switched on by default.
To switch them off for legacy code, use:
python
from pyfakefs.deprecator import Deprecator
Deprecator.show_warnings = False
New Features
* Improved automatic patching:
* automatically patch methods of a patched file system module imported like
from os.path import exists
* a module imported as another name (import os as _os) is now correctly
patched without the need of additional parameters
* automatically patch Path if imported like from pathlib import Path
* parameter patch_path has been removed from UnitTest and Patcher,
the correct patching of path imports is now done automatically
* UnitTest /Patcher arguments can now also be set in setUpPyfakefs()
* added possibility to set user ID
* added side_effect option to fake files
* added some support for extended filesystem attributes under Linux
* handle contents=None in create_file() as empty contents if size not
set
* added pathlib2 support
* added support for null device
* improved error message for "Bad file descriptor in fake filesystem"
v1.12.1
CPython 3 on Windows: we again no longer compile with Py_LIMITED_API by default because such modules still cannot be used with virtualenv. The problem is that it doesn’t work in CPython <= 3.4, and for technical reason we can’t enable this flag automatically based on the version of Python.
Like before, Issue 350 mentions a workaround if you still want the Py_LIMITED_API flag and either you are not concerned about virtualenv or you are sure your module will not be used on CPython <= 3.4: pass define_macros=[("Py_LIMITED_API", None)] to the ffibuilder.set_source() call.
v1.12
Direct support for pkg-config.
ffi.from_buffer() takes a new optional first argument that gives the array type of the result. It also takes an optional keyword argument require_writable to refuse read-only Python buffers.
ffi.new(), ffi.gc() or ffi.from_buffer() cdata objects can now be released at known times, either by using the with keyword or by calling the new ffi.release().
Windows, CPython 3.x: cffi modules are linked with python3.dll again. This makes them independant on the exact CPython version, like they are on other platforms. It requires virtualenv 16.0.0.
Accept an expression like ffi.new("int[4]", p) if p is itself another cdata int[4].
CPython 2.x: ffi.dlopen() failed with non-ascii file names on Posix
CPython: if a thread is started from C and then runs Python code (with callbacks or with the embedding solution), then previous versions of cffi would contain possible crashes and/or memory leaks. Hopefully, this has been fixed.
Support for ffi.cdef(..., pack=N) where N is a power of two. Means to emulate #pragma pack(N) on MSVC. Also, the default on Windows is now pack=8, like on MSVC. This might make a difference in corner cases, although I can’t think of one in the context of CFFI. The old way ffi.cdef(..., packed=True) remains and is equivalent to pack=1 (saying e.g. that fields like int should be aligned to 1 byte instead of 4).
4.5.11:
This release fixes :issue:1813, a bug introduced in :ref:3.59.1 <v3.59.1>, which caused :py:meth:~hypothesis.strategies.random_module to no longer affect the body of the test: Although Hypothesis would claim to be seeding the random module in fact tests would always run with a seed of zero.
4.5.10:
This patch fixes an off-by-one error in the maximum length of :func:~hypothesis.strategies.emails. Thanks to Krzysztof Jurewicz for :pull:1812.
4.5.9:
This patch removes some unused code from the shrinker. There is no user-visible change.
4.5.8:
This release fixes an internal IndexError in Hypothesis that could sometimes be triggered during shrinking.
4.5.7:
This release modifies the shrinker to interleave different types of reduction operations, e.g. switching between deleting data and lowering scalar values rather than trying entirely deletions then entirely lowering.
This may slow things down somewhat in the typical case, but has the major advantage that many previously difficult to shrink examples should become much faster, because the shrinker will no longer tend to stall when trying some ineffective changes to the shrink target but will instead interleave it with other more effective operations.
4.5.6:
This release makes a number of internal changes to the implementation of :func:hypothesis.extra.lark.from_lark. These are primarily intended as a refactoring, but you may see some minor improvements to performance when generating large strings, and possibly to shrink quality.
4.5.5:
This patch prints an explanatory note when :issue:1798 is triggered, because the error message from Numpy is too terse to locate the problem.
4.5.4:
In Python 2, long integers are not allowed in the shape argument to :func:~hypothesis.extra.numpy.arrays. Thanks to Ryan Turner for fixing this.
4.5.3:
This release makes a small internal refactoring to clarify how Hypothesis instructs tests to stop running when appropriate. There is no user-visible change.
4.5.2:
This release standardises all of the shrinker's internal operations on running in a random order.
The main effect you will see from this that it should now be much less common for the shrinker to stall for a long time before making further progress. In some cases this will correspond to shrinking more slowly, but on average it should result in faster shrinking.
4.5.1:
This patch updates some docstrings, but has no runtime changes.
4.5.0:
This release adds exclude_min and exclude_max arguments to :func:~hypothesis.strategies.floats, so that you can easily generate values from open or half-open intervals